add DaemonAwareThreadPool for thread pools to block shutdown #10959
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.
Motivation
It's know that ThreadPoolsExecutors don't care about daemon threads. They add all their threads to a global list which is then iterated and joined on
atexit
. We have a patch in pro that adds this functionality, and we also added it a while back for hypercorn, which now lives in rolo.This PR adds the functionality as a re-usable class, and uses it to implement the
AdaptiveThreadPool
, which is the thing being patched by pro. This allows us to get rid of the patch, which will help #10942.Changes
THREAD_POOL
will no longer join its threads on exit if the threads are daemon threads