mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
gh-107080: Fix Py_TRACE_REFS Crashes Under Isolated Subinterpreters (gh-107567)
The linked list of objects was a global variable, which broke isolation between interpreters, causing crashes. To solve this, we've moved the linked list to each interpreter.
This commit is contained in:
parent
14fbd4e6b1
commit
58ef741867
6 changed files with 62 additions and 29 deletions
|
@ -1921,11 +1921,11 @@ Py_FinalizeEx(void)
|
|||
}
|
||||
|
||||
if (dump_refs) {
|
||||
_Py_PrintReferences(stderr);
|
||||
_Py_PrintReferences(tstate->interp, stderr);
|
||||
}
|
||||
|
||||
if (dump_refs_fp != NULL) {
|
||||
_Py_PrintReferences(dump_refs_fp);
|
||||
_Py_PrintReferences(tstate->interp, dump_refs_fp);
|
||||
}
|
||||
#endif /* Py_TRACE_REFS */
|
||||
|
||||
|
@ -1961,11 +1961,11 @@ Py_FinalizeEx(void)
|
|||
*/
|
||||
|
||||
if (dump_refs) {
|
||||
_Py_PrintReferenceAddresses(stderr);
|
||||
_Py_PrintReferenceAddresses(tstate->interp, stderr);
|
||||
}
|
||||
|
||||
if (dump_refs_fp != NULL) {
|
||||
_Py_PrintReferenceAddresses(dump_refs_fp);
|
||||
_Py_PrintReferenceAddresses(tstate->interp, dump_refs_fp);
|
||||
fclose(dump_refs_fp);
|
||||
}
|
||||
#endif /* Py_TRACE_REFS */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue