bpo-40533: Disable GC in subinterpreters (GH-19961)
When Python is built with experimental isolated interpreters, a garbage collection now does nothing in an isolated interpreter. Temporary workaround until subinterpreters stop sharing Python objects.
This commit is contained in:
parent
89fc4a34cf
commit
d8135e913a
|
@ -1181,6 +1181,14 @@ collect(PyThreadState *tstate, int generation,
|
|||
_PyTime_t t1 = 0; /* initialize to prevent a compiler warning */
|
||||
GCState *gcstate = &tstate->interp->gc;
|
||||
|
||||
#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS
|
||||
if (tstate->interp->config._isolated_interpreter) {
|
||||
// bpo-40533: The garbage collector must not be run on parallel on
|
||||
// Python objects shared by multiple interpreters.
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (gcstate->debug & DEBUG_STATS) {
|
||||
PySys_WriteStderr("gc: collecting generation %d...\n", generation);
|
||||
show_stats_each_generations(gcstate);
|
||||
|
|
Loading…
Reference in New Issue