gh-104341: Minor Fixes in the _thread Module #104595
Draft
+299
−42
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.
This is primarily cleanup in preparation for the fix for gh-104341. However, in the process I found and fixed the following:
PyThreadState_Delete() wasn't called at the bottom of
thread_PyThread_start_new_thread()`PyInterpreterState.threads.count
) wasn't getting reset after forkPyInterpreterState.threads.count
field was effectively leaking the state of the threading module out into the broader runtimethread_run()
, the bootstate variable wasn't freed if its a daemon thread that exits early (due to interp finalizing)other observations:
thread._ident
but don't updatethread._native_id