Skip to content

Commit eba07f1

Browse files
committed
cancel closeAllConnections() if close() completed in time
1 parent 8c3893b commit eba07f1

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/Server.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,18 @@ class Server extends EventEmitter<Server.Events> {
6464
*/
6565
public async close(timeout = 5000): Promise<void> {
6666
this.emit("closing");
67+
let timeoutId: NodeJS.Timeout;
6768
await Promise.race([
6869
new Promise<void>(resolve => {
70+
timeoutId = setTimeout(() => {
71+
this.server.closeAllConnections();
72+
resolve();
73+
}, timeout)
74+
}),
75+
new Promise<void>(resolve => {
76+
clearTimeout(timeoutId);
6977
this.server.close(() => resolve());
7078
}),
71-
new Promise<void>(resolve => setTimeout(() => {
72-
this.server.closeAllConnections();
73-
resolve();
74-
}, timeout)),
7579
]);
7680
this.emit("closed");
7781
}

0 commit comments

Comments
 (0)