summaryrefslogtreecommitdiff
path: root/runtime/js
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/js')
-rw-r--r--runtime/js/40_process.js7
1 files changed, 4 insertions, 3 deletions
diff --git a/runtime/js/40_process.js b/runtime/js/40_process.js
index 2a5ac86bf..664a4b303 100644
--- a/runtime/js/40_process.js
+++ b/runtime/js/40_process.js
@@ -200,6 +200,7 @@ function collectOutput(readableStream) {
class ChildProcess {
#rid;
#waitPromiseId;
+ #waitComplete = false;
#unrefed = false;
#pid;
@@ -268,8 +269,8 @@ class ChildProcess {
const waitPromise = core.opAsync("op_spawn_wait", this.#rid);
this.#waitPromiseId = waitPromise[promiseIdSymbol];
this.#status = PromisePrototypeThen(waitPromise, (res) => {
- this.#rid = null;
signal?.[abortSignal.remove](onAbort);
+ this.#waitComplete = true;
return res;
});
}
@@ -317,10 +318,10 @@ class ChildProcess {
}
kill(signo = "SIGTERM") {
- if (this.#rid === null) {
+ if (this.#waitComplete) {
throw new TypeError("Child process has already terminated.");
}
- ops.op_kill(this.#pid, signo, "Deno.Child.kill()");
+ ops.op_spawn_kill(this.#rid, signo);
}
ref() {