benchmark: Delay shutdown in quitWorker

This commit is contained in:
Michael Lumish 2023-07-31 10:50:28 -07:00
parent 90adc8a3e2
commit 1f08883e2a
2 changed files with 20 additions and 1 deletions

View File

@ -74,6 +74,20 @@ function main() {
});
serverWorkerStream.on('status', (status) => {
console.log('Received server worker status ' + JSON.stringify(status));
clientWorker.quitWorker({}, (error, response) => {
if (error) {
console.log('Received error on clientWorker.quitWorker:', error);
} else {
console.log('Received response from clientWorker.quitWorker');
}
});
serverWorker.quitWorker({}, (error, response) => {
if (error) {
console.log('Received error on serverWorker.quitWorker:', error);
} else {
console.log('Received response from serverWorker.quitWorker');
}
});
});
}

View File

@ -41,7 +41,12 @@ module.exports = function WorkerServiceImpl(benchmark_impl, server) {
this.quitWorker = function quitWorker(call, callback) {
callback(null, {});
server.tryShutdown(function() {});
/* Due to https://github.com/nodejs/node/issues/42713, tryShutdown acts
* like forceShutdown on some Node versions. So, delay calling tryShutdown
* until after done handling this request. */
setTimeout(() => {
server.tryShutdown(function() {});
}, 10);
};
this.runClient = function runClient(call) {