diff options
author | 2023-06-05 02:02:13 -0700 | |
---|---|---|
committer | 2023-06-05 02:02:13 -0700 | |
commit | fef9853d5ae2818e71038dde3a5a82fe68cb97ef (patch) | |
tree | b4da417ee2af6db4715be93b169d424a719d655a /src/bun.js/javascript.zig | |
parent | 7dae4968475597bdc4662bba52f6ee3a6cae259f (diff) | |
download | bun-fef9853d5ae2818e71038dde3a5a82fe68cb97ef.tar.gz bun-fef9853d5ae2818e71038dde3a5a82fe68cb97ef.tar.zst bun-fef9853d5ae2818e71038dde3a5a82fe68cb97ef.zip |
wip
Diffstat (limited to 'src/bun.js/javascript.zig')
-rw-r--r-- | src/bun.js/javascript.zig | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/bun.js/javascript.zig b/src/bun.js/javascript.zig index cacac0213..e9515b0ff 100644 --- a/src/bun.js/javascript.zig +++ b/src/bun.js/javascript.zig @@ -256,6 +256,28 @@ pub export fn Bun__drainMicrotasks() void { JSC.VirtualMachine.get().eventLoop().tick(); } +const WaitForDebugger = struct { + var is_debugger_ready = std.atomic.Atomic(u32).init(0); + pub fn ready() void { + is_debugger_ready.store(1, .Monotonic); + std.Thread.Futex.wake(&is_debugger_ready, 1); + } + + pub fn wait() void { + while (is_debugger_ready.load(.Monotonic) == 0) { + std.Thread.Futex.wait(&is_debugger_ready, 1); + } + } +}; + +pub export fn Bun__waitForDebuggerToStart() void { + WaitForDebugger.wait(); +} + +pub export fn Bun__debuggerIsReady() void { + WaitForDebugger.ready(); +} + export fn Bun__readOriginTimer(vm: *JSC.VirtualMachine) u64 { return vm.origin_timer.read(); } @@ -2793,6 +2815,9 @@ pub fn NewHotReloader(comptime Ctx: type, comptime EventLoopType: type, comptime } comptime { - if (!JSC.is_bindgen) + if (!JSC.is_bindgen) { _ = Bun__getMainPath; + _ = Bun__waitForDebuggerToStart; + _ = Bun__debuggerIsReady; + } } |