Kaydet (Commit) c69c9bc2 authored tarafından Antoine Pitrou's avatar Antoine Pitrou

Replace an overly optimistic assert() in _PyGC_CollectNoFail with a simple guard.

üst 37d5cebb
......@@ -1612,12 +1612,19 @@ _PyGC_CollectNoFail(void)
{
Py_ssize_t n;
/* This function should only be called on interpreter shutdown, and
therefore not recursively. */
assert(!collecting);
collecting = 1;
n = collect(NUM_GENERATIONS - 1, NULL, NULL, 1);
collecting = 0;
/* Ideally, this function is only called on interpreter shutdown,
and therefore not recursively. Unfortunately, when there are daemon
threads, a daemon thread can start a cyclic garbage collection
during interpreter shutdown (and then never finish it).
See http://bugs.python.org/issue8713#msg195178 for an example.
*/
if (collecting)
n = 0;
else {
collecting = 1;
n = collect(NUM_GENERATIONS - 1, NULL, NULL, 1);
collecting = 0;
}
return n;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment