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) ...@@ -1612,12 +1612,19 @@ _PyGC_CollectNoFail(void)
{ {
Py_ssize_t n; Py_ssize_t n;
/* This function should only be called on interpreter shutdown, and /* Ideally, this function is only called on interpreter shutdown,
therefore not recursively. */ and therefore not recursively. Unfortunately, when there are daemon
assert(!collecting); threads, a daemon thread can start a cyclic garbage collection
collecting = 1; during interpreter shutdown (and then never finish it).
n = collect(NUM_GENERATIONS - 1, NULL, NULL, 1); See http://bugs.python.org/issue8713#msg195178 for an example.
collecting = 0; */
if (collecting)
n = 0;
else {
collecting = 1;
n = collect(NUM_GENERATIONS - 1, NULL, NULL, 1);
collecting = 0;
}
return n; 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