Refactor initialization and self termination code #51
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Self termination was not happening if the timeout was larger than about 1 minute, due to the event loop self management which makes it return to the calling function regularly.
In order to ignore unimportnat events that wake up the event loop it means we cannot measure idleness from the event loop general activity but we need to do so via measuring actual significant events.
Actual activity happens when clients make requests, so use the socket reader events as signal to reset the idler event.
While there also gather some statistics that can be printed ad debug level 1 (INFO).