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: <[email protected]> |
| 2018-06-03 21:37:07 | skrah | link | issue33713 messages |
| 2018-06-03 21:37:07 | skrah | create | |
|