-
-
Notifications
You must be signed in to change notification settings - Fork 840
Expand file tree
/
Copy pathserver-worker-thread.js
More file actions
39 lines (33 loc) · 889 Bytes
/
server-worker-thread.js
File metadata and controls
39 lines (33 loc) · 889 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const { initServerProcess } = require('./server-process.js');
let closeTmr = null;
const sendHandle = (err) => {
if (err && err.code === 'ERR_IPC_CHANNEL_CLOSED') {
process.exit(0);
}
};
const receiveMessageFromMain = initServerProcess((msg) => {
// send message from worker going to main
process.send(msg, sendHandle);
if (msg.serverClosed) {
clearTimeout(closeTmr);
process.exit(0);
}
});
process.on('message', (msg) => {
// receive a message from the main going to worker
if (msg && msg.closeServer) {
closeTmr = setTimeout(() => {
// force exiting if we timeout
process.exit(0);
}, 5000);
}
receiveMessageFromMain(msg);
});
process.on('unhandledRejection', (e) => {
process.send(
{
error: { message: 'unhandledRejection: ' + e, stack: typeof e.stack === 'string' ? e.stack : null },
},
sendHandle,
);
});