File tree Expand file tree Collapse file tree
Misc/NEWS.d/next/Core and Builtins Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ Fix a crash on fork when using subinterpreters. Contributed by Stéphane Wirtel
Original file line number Diff line number Diff line change @@ -281,10 +281,11 @@ _PyInterpreterState_DeleteExceptMain()
281281 HEAD_LOCK ();
282282 PyInterpreterState * interp = _PyRuntime .interpreters .head ;
283283 _PyRuntime .interpreters .head = NULL ;
284- for (; interp != NULL ; interp = interp -> next ) {
284+ while ( interp != NULL ) {
285285 if (interp == _PyRuntime .interpreters .main ) {
286286 _PyRuntime .interpreters .main -> next = NULL ;
287287 _PyRuntime .interpreters .head = interp ;
288+ interp = interp -> next ;
288289 continue ;
289290 }
290291
@@ -293,7 +294,9 @@ _PyInterpreterState_DeleteExceptMain()
293294 if (interp -> id_mutex != NULL ) {
294295 PyThread_free_lock (interp -> id_mutex );
295296 }
296- PyMem_RawFree (interp );
297+ PyInterpreterState * prev_interp = interp ;
298+ interp = interp -> next ;
299+ PyMem_RawFree (prev_interp );
297300 }
298301 HEAD_UNLOCK ();
299302
You can’t perform that action at this time.
0 commit comments