aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/javascript.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/bun.js/javascript.zig')
-rw-r--r--src/bun.js/javascript.zig27
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;
+ }
}