Closed l0k18 closed 3 years ago
First thing was to get all of the servers stopping correctly. Largely this entailed centralising the shutdown in the interrupt handlers and calling them also from quit channel selectors.
Next was to get them shutting down correctly when run via the logi pipe logging worker runner. This required linking the previous parts correctly to the pipe logger's run controls.
In order to make the task simpler, a test rig that can run any pipelog enabled application, that starts it, pauses, then stops it, and then if that isn't the end of it, 5 seconds later it force kills it to save programmer headache. This can be found in the new 'pipe' folder inside pkg/util/logi, which now contains consume and serve, the top level controls.
Note that in the process we encountered the custom, net/rpc and gob (default) encoding run controls cannot coincide with using the pipe logger. It isn't important right now, but it would make sense to put a generalised channel in to attach further APIs on the fly.
servers all stop properly now but the run control in the GUI is still broken
almost there... things are not always shutting down cleanly but this is almost fixed
the everbug... this should be the end of it now with tag v0.4.6
There is a rudimentary stop control command in the pipe logger protocol, remove all the process kill/interrupt stuff and propagate control only this way. Ctrl-c handling should do exactly the same thing so the same function should be called by it as with the pipe log kill command.