WIP keep mill server alive if you Ctrl-C during --watch #339
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.
Fixes #327
This introduces a new
idle
flag next todone
insideMillServerMain#handleRun
, which is temporarily set totrue
during the--watch
phase.interruptServer
is then skipped if theMillServerActionRunner
thread is idle, letting the normalt.interrupt
/t.stop
calls interrupt & clean it up.This also makes the Mill server ignore SIGINT, since otherwise Ctrl-C on the Mill client will propagate through the parent-child process relationship and kill the server too.
On the side, this also cleans up the Mill Client's Java code to use try-with-resources to ensure resources get properly cleaned up, and names the various threads we spawn & main methods we use for better debuggability.