Message117537
>I don't know why you're saying that. The purpose of PyBuffer_Release is
>precisely to solve these kinds of use cases (where you want timely
>release of a resource rather than rely on the garbage collector).
Yes, I was unclear. This refers to Python 3.2, not the 2.x series. PyObject_AsReadBuffer (defined at line 270 in abstract.c, code of routine attached) calls bf_getbuffer with the PyBUF_SIMPLE flag to retrieve a bytes buffer. It then calls bf_releasebuffer before returning the buffer to the caller. PyObject_AsCharBuffer and PyObject_AsWriteBuffer do the same. It is not be exactly the same issue discussed so far, but is closely related.
Deprecating PyObject_AsReadBuffer is extreme, and doesn't solve the early release problem. Redefining the PyBUF_SIMPLE flag to be like the old buffer protocol warns those implementing a new buffer interface to avoid processing PyBUF_SIMPLE requests when locking is required. |
|
Date |
User |
Action |
Args |
2010-09-28 16:45:59 | kermode | set | recipients:
+ kermode, lemburg, loewis, pitrou, vstinner |
2010-09-28 16:45:59 | kermode | set | messageid: <1285692359.13.0.278085270749.issue9602@psf.upfronthosting.co.za> |
2010-09-28 16:45:57 | kermode | link | issue9602 messages |
2010-09-28 16:45:56 | kermode | create | |
|