robobun
b2351bbb4e
Add Symbol.asyncDispose to Worker in worker_threads ( #22064 )
...
## Summary
- Implement `Symbol.asyncDispose` for the `Worker` class in
`worker_threads` module
- Enables automatic resource cleanup with `await using` syntax
- Calls `await this.terminate()` to properly shut down workers when they
go out of scope
## Implementation Details
The implementation adds a simple async method to the Worker class:
```typescript
async [Symbol.asyncDispose]() {
await this.terminate();
}
```
This allows workers to be used with the new `await using` syntax for
automatic cleanup:
```javascript
{
await using worker = new Worker('./worker.js');
// worker automatically terminates when leaving this scope
}
```
## Test Plan
- [x] Added comprehensive tests for `Symbol.asyncDispose` functionality
- [x] Tests verify the method exists and returns undefined
- [x] Tests verify `await using` syntax works correctly for automatic
worker cleanup
- [x] All new tests pass
- [x] Existing worker_threads functionality remains intact
🤖 Generated with [Claude Code](https://claude.ai/code )
---------
Co-authored-by: Claude Bot <claude-bot@bun.sh >
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-22 19:59:15 -07:00
Jarred Sumner
2e02d9de28
Use ReadableStream.prototype.* in tests instead of new Response(...).* ( #20937 )
...
Co-authored-by: Jarred-Sumner <709451+Jarred-Sumner@users.noreply.github.com >
Co-authored-by: Alistair Smith <hi@alistair.sh >
Co-authored-by: Claude Bot <claude-bot@bun.sh >
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-14 00:47:53 -07:00
Ali
95346bd919
fixed SharedArrayBuffer crashing on transfer ( #20130 )
2025-06-02 23:05:52 -07:00
190n
9dd799d2e6
Implement Worker.getHeapSnapshot ( #19706 )
...
Co-authored-by: 190n <7763597+190n@users.noreply.github.com >
2025-05-23 16:50:13 -07:00
190n
a182c313e2
pass test-worker-nested-uncaught.js ( #19509 )
2025-05-12 14:10:18 -07:00
190n
b5f31a6ee2
node:worker_threads: improve error messages, support environmentData, emit worker event ( #18768 )
...
Co-authored-by: 190n <7763597+190n@users.noreply.github.com >
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
2025-05-08 19:27:46 -07:00
190n
eee5d4fb4a
node:worker_threads low-hanging fruit ( #18758 )
...
Co-authored-by: 190n <7763597+190n@users.noreply.github.com >
Co-authored-by: Ashcon Partovi <ashcon@partovi.net >
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com >
Co-authored-by: Don Isaac <donald.isaac@gmail.com >
Co-authored-by: chloe caruso <git@paperclover.net >
2025-04-08 05:29:53 -07:00
190n
c1218b250d
Bump WebKit and re-enable IPInt ( #16227 )
...
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
Co-authored-by: Kai Tamkun <kai@tamkun.io >
2025-01-15 04:06:52 -08:00
Jarred Sumner
1ae855223c
Bump WebKit ( #16068 )
2024-12-31 14:48:54 -08:00
Meghan Denny
6f60523e6c
" -> ' (#14776 )
...
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
2024-10-23 19:21:36 -07:00
Jarred Sumner
3e8a50ba57
workerData should default to null instead of undefined ( #13835 )
...
Co-authored-by: Jarred-Sumner <Jarred-Sumner@users.noreply.github.com >
2024-09-09 16:48:12 -07:00
Jarred Sumner
cd6785771e
run prettier and add back format action ( #13722 )
2024-09-03 21:32:52 -07:00
Meghan Denny
ff0f9d5f4d
node:worker_threads: fix assertion when require is used with 'eval:true' ( #13108 )
2024-08-07 02:30:40 -07:00
Ciro Spaciari
1c648063fa
fix(tls/socket/fetch) shutdown fix + ref counted context ( #12925 )
...
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
2024-07-30 22:41:54 -07:00
Jarred Sumner
6a756bf979
Implement blob: URLs in fetch, import, and Worker ( #11537 )
...
Co-authored-by: Jarred-Sumner <Jarred-Sumner@users.noreply.github.com >
Co-authored-by: dave caruso <me@paperdave.net >
2024-06-05 18:49:03 -07:00
Jarred Sumner
2580d199a4
fix some worker-related stability issues ( #11494 )
2024-06-04 23:29:21 -07:00
dave caruso
e792bbdf5f
fix: overriding self.postMessage should not impact worker_threads.parentPort ( #10496 )
...
* fix a bug in worker
* remove old
2024-04-24 22:14:37 -07:00
Meghan Denny
3a7df3f6c7
windows: add more passing test ( #8615 )
2024-02-01 13:45:47 -08:00
dave caruso
072f2f15ea
ci: run windows tests and also run them concurrently ( #7758 )
2024-01-12 17:02:20 -08:00
Jérôme Benoit
6a5995e27d
test(worker): refactor worker tests ( #6732 )
...
* test(worker): refactor worker tests
+ constify variables
+ typing
+ untangle web worker from worker_threads tests
+ cleanup variables namespace
no functional changes on tests
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: move worker_threads related code to node/worker_threads
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: move worker tests into workers directory
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* refactor: report upstream changes
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* refactor: report upstream change
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* fix: address review comments
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* chore: fix submodule
---------
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
Co-authored-by: dave caruso <me@paperdave.net >
2023-12-06 17:06:11 -08:00
Dylan Conway
042a6cdbce
Update worker_threads.test.ts
2023-10-24 17:07:48 -07:00
Jérôme Benoit
85a0d71c52
fix(worker_threads): off by one on threadId ( #6671 )
...
* fix(worker_threads): off by one on threadId
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: refine worker_threads threadId consistency test
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: improve worker_threads tests
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: fix worker_threads threadId consistency test
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: simplify worker_threads threadId consistency test
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: refine worker_threads threadId consistency test
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org >
* refactor: cleanup import on worker_threads tests
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: switch worker_threads worker to TS
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: revert wrong refactoring
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: format
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: port worker_threads worker to ESM
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: cleanup worker_threads test
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: improve worker_threads coverage
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org >
---------
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org >
2023-10-24 17:05:22 -07:00
Jérôme Benoit
d9c0273421
fix(node:worker_threads): ensure threadId property is exposed on worker_threads instance ( #6521 )
...
* fix: ensure threadId property is exposed on worker_threads instance
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* fix: rename lazy worker_threads module properties
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* fix: add getter for threadId
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: improve worker_threads UTs
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: fix lazy loading
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: fix worker_threads test
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org >
* fix: return the worker threadId
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
* test: refine worker_threads expectation on threadId
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org >
---------
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org >
2023-10-16 15:19:38 -07:00
dave caruso
5497accbdb
Add env option for node:worker_threads ( #4052 )
...
* almost works
* env stuff
* test fixes
* wtfmove
* ok
* ok
* ref by default
* it now does the ref stuff by default
* cool
2023-08-07 23:58:38 -07:00
Jarred Sumner
207c7eb509
Implement node:worker_threads ( #3923 )
...
* Start to implement `worker_threads`
* more
* more!!
* more
* Update bundle_v2.zig
* delete outdated tests
* `receiveMessageOnPort`
* props test and export default
* fix merge
* not implemented tests
* individual imports
* `receiveMessageOnPort` tests
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com >
2023-08-02 18:12:12 -07:00