[Python-checkins] bpo-44032: Delay deletion of stack chunks until thread state is deleted. (GH-26285)
markshannon
webhook-mailer at python.org
Mon May 24 11:22:11 EDT 2021
https://github.com/python/cpython/commit/af5d497f72ceaf3f207a8aded028607c4c46a993
commit: af5d497f72ceaf3f207a8aded028607c4c46a993
branch: main
author: Mark Shannon <mark at hotpy.org>
committer: markshannon <mark at hotpy.org>
date: 2021-05-24T16:22:02+01:00
summary:
bpo-44032: Delay deletion of stack chunks until thread state is deleted. (GH-26285)
files:
M Python/pystate.c
diff --git a/Python/pystate.c b/Python/pystate.c
index 36057ee13bded..64dcd577a0ffd 100644
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -897,13 +897,6 @@ PyThreadState_Clear(PyThreadState *tstate)
if (tstate->on_delete != NULL) {
tstate->on_delete(tstate->on_delete_data);
}
- _PyStackChunk *chunk = tstate->datastack_chunk;
- tstate->datastack_chunk = NULL;
- while (chunk != NULL) {
- _PyStackChunk *prev = chunk->previous;
- _PyObject_VirtualFree(chunk, chunk->size);
- chunk = prev;
- }
}
@@ -936,6 +929,13 @@ tstate_delete_common(PyThreadState *tstate,
{
PyThread_tss_set(&gilstate->autoTSSkey, NULL);
}
+ _PyStackChunk *chunk = tstate->datastack_chunk;
+ tstate->datastack_chunk = NULL;
+ while (chunk != NULL) {
+ _PyStackChunk *prev = chunk->previous;
+ _PyObject_VirtualFree(chunk, chunk->size);
+ chunk = prev;
+ }
}
static void
More information about the Python-checkins
mailing list