mirror of
https://github.com/python/cpython.git
synced 2025-10-13 10:23:28 +00:00
gh-109746: Make _thread.start_new_thread delete state of new thread on its startup failure (GH-109761)
If Python fails to start newly created thread due to failure of underlying PyThread_start_new_thread() call, its state should be removed from interpreter' thread states list to avoid its double cleanup. Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
a264637654
commit
ca3ea9ad05
4 changed files with 39 additions and 1 deletions
|
@ -1779,7 +1779,9 @@ tstate_delete_common(PyThreadState *tstate, int release_gil)
|
|||
if (tstate->_status.bound_gilstate) {
|
||||
unbind_gilstate_tstate(tstate);
|
||||
}
|
||||
unbind_tstate(tstate);
|
||||
if (tstate->_status.bound) {
|
||||
unbind_tstate(tstate);
|
||||
}
|
||||
|
||||
// XXX Move to PyThreadState_Clear()?
|
||||
clear_datastack(tstate);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue