DefaultThreadService: allow faster JVM shutdown #394
Closed
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.
I noticed that even a simple program as the following will keep the JVM alive for several seconds:
This is caused by threads created by the DefaultThreadService, which run for a view seconds even after all the tasks are completed.
This PR fixes the late JVM shutdown. The threads created by DefaultThreadService are made deamon threads and will no longer block the JVM shutdown. This unfortunately causes the JVM to shutdown before all tasks submitted to ThreadService are completed. This is fixed by adding a LifeCounter, that counts the tasks submitted to ThreadService and keeps the JVM alive until all tasks are completed.