summaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/js/40_signals.js5
-rw-r--r--runtime/ops/signal.rs4
2 files changed, 6 insertions, 3 deletions
diff --git a/runtime/js/40_signals.js b/runtime/js/40_signals.js
index a4f3a6ccd..2498c40d7 100644
--- a/runtime/js/40_signals.js
+++ b/runtime/js/40_signals.js
@@ -5,6 +5,7 @@
const core = window.Deno.core;
const {
Set,
+ SymbolFor,
TypeError,
} = window.__bootstrap.primordials;
@@ -13,7 +14,9 @@
}
function pollSignal(rid) {
- return core.opAsync("op_signal_poll", rid);
+ const promise = core.opAsync("op_signal_poll", rid);
+ core.unrefOp(promise[SymbolFor("Deno.core.internalPromiseId")]);
+ return promise;
}
function unbindSignal(rid) {
diff --git a/runtime/ops/signal.rs b/runtime/ops/signal.rs
index aa419c6c8..db30c66d8 100644
--- a/runtime/ops/signal.rs
+++ b/runtime/ops/signal.rs
@@ -4,7 +4,7 @@ use deno_core::error::generic_error;
#[cfg(not(target_os = "windows"))]
use deno_core::error::type_error;
use deno_core::error::AnyError;
-use deno_core::op_async_unref;
+use deno_core::op_async;
use deno_core::op_sync;
use deno_core::Extension;
use deno_core::OpState;
@@ -33,7 +33,7 @@ pub fn init() -> Extension {
.ops(vec![
("op_signal_bind", op_sync(op_signal_bind)),
("op_signal_unbind", op_sync(op_signal_unbind)),
- ("op_signal_poll", op_async_unref(op_signal_poll)),
+ ("op_signal_poll", op_async(op_signal_poll)),
])
.build()
}