Use finally
to terminate parallel processes
#10952
Merged
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.
Subject: Correctly terminate parallel processes.
Feature or Bugfix
Purpose
While debugging an issue with parallel docs building, I encountered zombie parallel processes. This happened after I used
ctrl+c
to stop a hanging build. With this change, all parallel process will be terminated correctly regardless of the reason that terminated the build.Detail
The reason is simple:
except Exception
does not catch everything. For example,KeyboardInterrupt
which is raised throughctrl+c
will not be caught:See the exception hierarchy for details.
Since we don't do anything with the caught exception other than re-raising it, we can simply use the
finally
clause: