Hi,

I stumbled over the following paragraph in

https://bugs.pypy.org/issue1069

"""
PyEval_SaveThread() always return NULL in pypy.  But I don't know if there
is a better value, since the GIL is always released in C code.
"""

Why should the GIL always be released? There are many C extensions that use
it in one way or another to protect their internal state, to implement fast
(optimistic) locking, or whatever. In order to be compatible with them, the
GIL should be held unless explicitly released, just like CPython does it.

Granted, in many cases, it wouldn't have to be the GIL, it could just be a
separate "C code lock". But it's impossible to take this decision in general.

Stefan

_______________________________________________
pypy-dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to