123456789101112131415161718192021222324252627282930313233343536373839 |
- 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
- );
- });
|