[issue10181] Problems with Py_buffer management in memoryobject.c (and elsewhere?)
report at bugs.python.org
Mon Feb 14 13:02:23 CET 2011
Nick Coghlan <ncoghlan at gmail.com> added the comment:
On further reflection, I realised point 4 in that suggestion isn't reliable in a formal sense. Consider:
with memoryview(a) as m:
The slice won't reference the buffer again, but isn't guaranteed by the language definition to have been garbage collected at the time m.release() is called by the with statement.
Altering release() to simply decrement the reference count of the managed buffer would defeat the whole point of having that method, so it may be necessary to allow early release with outstanding references and then include a "still alive" check in the code that allows access to the buffer details (similar to the way weak references work).
Python tracker <report at bugs.python.org>
More information about the Python-bugs-list