@@ -292,9 +292,7 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate)
292
292
293
293
HEAD_LOCK (runtime );
294
294
for (PyThreadState * p = interp -> tstate_head ; p != NULL ; p = p -> next ) {
295
- if (p != tstate ) {
296
- PyThreadState_Clear (p );
297
- }
295
+ PyThreadState_Clear (p );
298
296
}
299
297
HEAD_UNLOCK (runtime );
300
298
@@ -326,7 +324,6 @@ interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate)
326
324
327
325
/* Last garbage collection on this interpreter */
328
326
_PyGC_CollectNoFail (tstate );
329
- PyThreadState_Clear (tstate );
330
327
_PyGC_Fini (interp );
331
328
332
329
/* We don't clear sysdict and builtins until the end of this function.
@@ -900,13 +897,6 @@ PyThreadState_Clear(PyThreadState *tstate)
900
897
if (tstate -> on_delete != NULL ) {
901
898
tstate -> on_delete (tstate -> on_delete_data );
902
899
}
903
- _PyStackChunk * chunk = tstate -> datastack_chunk ;
904
- tstate -> datastack_chunk = NULL ;
905
- while (chunk != NULL ) {
906
- _PyStackChunk * prev = chunk -> previous ;
907
- _PyObject_VirtualFree (chunk , chunk -> size );
908
- chunk = prev ;
909
- }
910
900
}
911
901
912
902
@@ -939,6 +929,13 @@ tstate_delete_common(PyThreadState *tstate,
939
929
{
940
930
PyThread_tss_set (& gilstate -> autoTSSkey , NULL );
941
931
}
932
+ _PyStackChunk * chunk = tstate -> datastack_chunk ;
933
+ tstate -> datastack_chunk = NULL ;
934
+ while (chunk != NULL ) {
935
+ _PyStackChunk * prev = chunk -> previous ;
936
+ _PyObject_VirtualFree (chunk , chunk -> size );
937
+ chunk = prev ;
938
+ }
942
939
}
943
940
944
941
static void
0 commit comments