Open yoursunny opened 4 years ago
@yoursunny, thank you for the pull request! Will release the update during the week.
I am not sure. That it should work as you have described. If we will stop the server when there is no active request then it should stop right after line await server.run();
which does not make a lot of sense.
Moreover, if I run a server, I do not want it to stop if it is waiting for external calls.
Now server behave the same with any "requestTimeout" values. It just waits for incoming calls.
The change is on the client. No change has been made to the server. When the client receives a response from the server, it should cancel the timer and allow itself to exit.
Oh, clear. Then it should be separate processes for client and server. I will recheck. Thanks
For this test case, the server cannot prevent the process from exiting, because it uses an EventEmitter that does not have a socket.
Your socket based servers, such as the WebSocket transport, lack a close()
method. That’s why you have to use process.exit()
in test suites. But that’s a different topic.
Yes, you are right. No IO in event emitter. Will try your example once more)
Hey @koorchik can you review and merge?
After a long time without action from the repository owner, I have decided to publish my patches in a fork: @yoursunny/mole-rpc. If anyone else is affected from this bug, you can try my fork.
The code has a bug: the program below does not terminate right away after all requests have been processed, but has to wait for the 300-second timeout. This patch fixes the bug by canceling the timer when server responds.