Skip to content

Commit

Permalink
add close event
Browse files Browse the repository at this point in the history
  • Loading branch information
andersonjoseph committed Sep 7, 2023
1 parent 440f54d commit a97d391
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1001,6 +1001,7 @@ class ThreadPool {
this.publicInterface.emit('error', error);
} finally {
await this.destroy();
this.publicInterface.emit('close');
this.closingUp = false;
}
}
Expand Down
3 changes: 3 additions & 0 deletions test/pool-close.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ test('close()', async (t) => {
setImmediate(() => t.resolves(pool.close(), 'close is resolved when all running tasks are completed'));

await Promise.all([
t.resolves(once(pool, 'close'), 'handler is called when pool is closed'),
t.resolves(task1, 'complete running task'),
t.resolves(task2, 'complete running task')
]);
Expand Down Expand Up @@ -46,6 +47,7 @@ test('close({force: true})', async (t) => {
setImmediate(() => t.resolves(pool.close({ force: true }), 'close is resolved when all running tasks are completed'));

await Promise.all([
t.resolves(once(pool, 'close'), 'handler is called when pool is closed'),
t.resolves(task1, 'complete running task'),
t.rejects(task2, /The task has been aborted/, 'abort task that are not started yet')
]);
Expand All @@ -62,6 +64,7 @@ test('close({force: true})', async (t) => {
setImmediate(() => t.resolves(pool.close({ force: true }), 'close is resolved when all running tasks are completed'));

await Promise.all([
t.resolves(once(pool, 'close'), 'handler is called when pool is closed'),
t.resolves(task1, 'complete running task'),
t.resolves(task2, 'complete running task'),
t.rejects(task3, /The task has been aborted/, 'abort task that are not started yet'),
Expand Down

0 comments on commit a97d391

Please sign in to comment.