Adding a Par construct to Python?
Luis Zarrabeitia
kyrie at uh.cu
Wed May 20 19:07:58 EDT 2009
On Wednesday 20 May 2009 06:16:39 pm Aahz wrote:
> >While I agree that the GIL greatly simplifies things for the
> >interpreter, I don't understand this statement. In practice, you should
> >lock all critical sections if you expect your code to be used in a
> >multithreading environment. That can't be different from what Java, C#
> >or any other languages do, including C++. Why is that so expensive in
> >python extensions, that it is used as an argument against removing the
> >GIL?
>
> Python is intended to be simple/easy to integrate with random C
> libraries. Therefore you have to write explicit code from the C side in
> order to drop the GIL.
Erm, that doesn't really answers the question. If there were no GIL, the C
code called from python would be just as unsafe as the C code called from C.
And if "not thread-safe, you take care of the locking" notices are enough for
the original libraries (and a lot of other languages, and even python
constructs), the C extension could always grab the locks.
There must be another reason (i.e, the refcounts) to argue _for_ the GIL,
because this one just seems to be just an attempt to fix unsafe code when
called from python. And that was my point. Refcounts + interpreter simplicity
seem to imply the need for a GIL, but to make unsafe code safe without fixing
said code (or even thinking about it) is a weird goal... specially if it
became the only reason for a GIL. After all, one could argue for that goal in
almost all languages.
--
Luis Zarrabeitia (aka Kyrie)
Fac. de Matemática y Computación, UH.
http://profesores.matcom.uh.cu/~kyrie
More information about the Python-list
mailing list