Fix process of reference count during GC
Closed this issue · 2 comments
y-fujisaki2 commented
When we subtract reference counter of an object, the destructor is automatically called if the value of counter is 0.
At the same time an error occurs, as the GC executed while the destructor is still in running phase.
To eliminate the error, we have added below program which exclude objects from GC in the destructor in line 4.
static void
Wrapper_dealloc(Wrapper *self)
{
PyObject_GC_UnTrack((PyObject )self); //Add this line to eliminate self from GC
Wrapper_clear(self);
self->ob_type->tp_free((PyObject)self);
}
Patch: Acquisition.zip
stephan-hof commented
Thanks for reporting. Issue is fixed via pull-request #22
y-fujisaki2 commented
Thanks so much for quickly marging this fix.