[Python-Dev] GIL required for all Python calls? (original) (raw)
"Martin v. Löwis" martin at v.loewis.de
Thu Jan 7 22:11:36 CET 2010
- Previous message: [Python-Dev] GIL required for _all_ Python calls?
- Next message: [Python-Dev] GIL required for _all_ Python calls?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I don't think that's possible. The regex engine can also operate on objects whose representation may move in memory when you don't hold the GIL (e.g. buffers that get mutated). Why is it a problem? If we get a buffer through the new buffer API, the object should ensure that the representation isn't moved away until the buffer is released.
In 2.7, we currently get the buffer with bf_getreadbuffer. In 3.x, we have
/* Release the buffer immediately --- possibly dangerous
but doing something else would require some re-factoring
*/
PyBuffer_Release(&view);
Even if we do use the new API, and correctly, it still might be confusing if the contents of the buffer changes underneath.
Regards, Martin
- Previous message: [Python-Dev] GIL required for _all_ Python calls?
- Next message: [Python-Dev] GIL required for _all_ Python calls?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]