Fix: Wait for terminated threads to join in thread_pool::Impl::resize #3879
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.
Description
Part of solving #3851.
When decreasing the number of threads in
thread_pool::Impl::resize
it was possible for the threads marked for termination to still be fully alive at process exit time if the call toresize
and the exit of the main function were close enough to each other.This change makes
resize
wait for the threads to actually join guaranteeing the threads have been shut down in a orderly manner when theresize
function exits.Tests
N/A
Checklist:
have previously submitted a Contributor License Agreement
(individual, and if there is any way my
employers might think my programming belongs to them, then also
corporate). - small change no CLA required.
(adding new test cases if necessary).