Message318586
Okay that makes sense. :)
I looked a bit at the gc code. A consumer object always has one
reference to a memoryview with an export, which isn't visited. So
it looks to me that the gc_refs of that memoryview cannot fall to 0.
So memory_clear() isn't called in that case, but mbuf_clear() is, which
is known and expected to handle mbuf->exports >= 0.
Indeed let's perhaps just add "if (self->exports > 0) return 0" to memory_clear() if those assumptions are too complex. |
|
Date |
User |
Action |
Args |
2018-06-03 21:37:07 | skrah | set | recipients:
+ skrah, pitrou, vstinner, serhiy.storchaka |
2018-06-03 21:37:07 | skrah | set | messageid: <1528061827.35.0.592728768989.issue33713@psf.upfronthosting.co.za> |
2018-06-03 21:37:07 | skrah | link | issue33713 messages |
2018-06-03 21:37:07 | skrah | create | |
|