mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 19:08:50 +00:00
* work so far * stuff * a * basics work * stuff * yoo * build lockfile * correct * f * a * install fixture havent tested * i made it worse * lol * be more reasonable * make the test easier to pass because bun install doesn't handle obscure lockfile edge cases :/ * a * works now * ok * a * a * cool * nah * fix stuff * l * a * idfk * LAME * prettier errors * does this fix tests? * Add more safety checks to Integrity * Add another check * More careful lifetime handling * Fix linux debugger issue * a * tmp dir and snapshot test --------- Co-authored-by: Jarred SUmner <jarred@jarredsumner.com>
30 lines
884 B
C++
30 lines
884 B
C++
#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
|
|
} |