File tree Expand file tree Collapse file tree 2 files changed +20
-0
lines changed Expand file tree Collapse file tree 2 files changed +20
-0
lines changed Original file line number Diff line number Diff line change @@ -1861,6 +1861,21 @@ Calling `unref()` on a worker allows the thread to exit if this is the only
18611861active handle in the event system . If the worker is already ` unref()` ed calling
18621862` unref()` again has no effect.
18631863
1864+ ### ` worker[Symbol.asyncDispose]()`
1865+
1866+ <!-- YAML
1867+ added: REPLACEME
1868+ -->
1869+
1870+ Calls [` worker.terminate()` ][] when the dispose scope is exited.
1871+
1872+ ` ` ` js
1873+ async function example() {
1874+ await using worker = new Worker('for (;;) {}', { eval: true });
1875+ // Worker is automatically terminate when the scope is exited.
1876+ }
1877+ ` ` `
1878+
18641879## Notes
18651880
18661881### Synchronous blocking of stdio
Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ const {
1919 String,
2020 StringPrototypeTrim,
2121 Symbol,
22+ SymbolAsyncDispose,
2223 SymbolFor,
2324 TypedArrayPrototypeFill,
2425 Uint32Array,
@@ -407,6 +408,10 @@ class Worker extends EventEmitter {
407408 } ) ;
408409 }
409410
411+ async [ SymbolAsyncDispose ] ( ) {
412+ await this . terminate ( ) ;
413+ }
414+
410415 ref ( ) {
411416 if ( this [ kHandle ] === null ) return ;
412417
You can’t perform that action at this time.
0 commit comments