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);
}
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