aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/bindings/JSCUSocketsLoopIntegration.cpp
blob: 0e3fcf47dc990c882da67318de5803cae5eb7181 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "root.h"
#include "JavaScriptCore/VM.h"

// On Linux, signals are used to suspend/resume threads in JavaScriptCore
// When `.acquireAccess` is called, the signal might be raised.
// This causes issues with LLDB which might catch the signal.
// So we want to avoid that, we really only want this code to be executed when the debugger is attached
// But it's pretty hard to tell if LLDB is attached or not, so we just disable this code on Linux when in debug mode
#ifndef ACQUIRE_RELEASE_HEAP_ACCESS
#if OS(DARWIN)
#define ACQUIRE_RELEASE_HEAP_ACCESS 1
#else
#ifndef BUN_DEBUG
#define ACQUIRE_RELEASE_HEAP_ACCESS 1
#endif
#endif
#endif

extern "C" void bun_on_tick_before(JSC::VM* vm)
{
#if ACQUIRE_RELEASE_HEAP_ACCESS
    // vm->heap.releaseAccess();
#endif
}
extern "C" void bun_on_tick_after(JSC::VM* vm)
{
#if ACQUIRE_RELEASE_HEAP_ACCESS
    // vm->heap.acquireAccess();
#endif
}