summaryrefslogtreecommitdiff
path: root/lib/child_process.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/child_process.js')
-rw-r--r--lib/child_process.js9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/child_process.js b/lib/child_process.js
index ae5a5f6587..29a6450210 100644
--- a/lib/child_process.js
+++ b/lib/child_process.js
@@ -378,14 +378,13 @@ function execFile(file /* , args, options, callback */) {
if (options.signal.aborted) {
process.nextTick(() => kill());
} else {
+ const childController = new AbortController();
options.signal.addEventListener('abort', () => {
- if (!ex) {
+ if (!ex)
ex = new AbortError();
- }
kill();
- });
- const remove = () => options.signal.removeEventListener('abort', kill);
- child.once('close', remove);
+ }, { signal: childController.signal });
+ child.once('close', () => childController.abort());
}
}