- private async startWorker() {
- return new Promise((resolve, reject) => {
- const worker = new Worker(this.workerScript);
- worker.on('message', resolve);
- worker.on('error', reject);
- worker.on('exit', (code) => {
- if (code !== 0) {
- reject(new Error(`Worker stopped with exit code ${code}`));
- }
- });
- this.workers.add(worker);
+ private startWorker(): void {
+ const worker = new Worker(this.workerScript);
+ worker.on('message', this.messageListener);
+ worker.on('error', () => { /* This is intentional */ });
+ worker.on('exit', (code) => {
+ WorkerUtils.defaultExitHandler(code);
+ this.workerSet.delete(this.getWorkerSetElementByWorker(worker));