[Python-Dev] GIL required for all Python calls? (original) (raw)
"Martin v. Löwis" martin at v.loewis.de
Thu Jan 7 21:45:42 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've been wondering whether it's possible to release the GIL in the regex engine during matching.
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). Even if they stay in place - if their contents changes, regex results may be confusing. It seems probably worthwhile to optimize for the common case of using the regexp engine on an immutable object of type "str" or "bytes", and allow releasing the GIL in that case, even if you have to keep it for the general case.
Right. This problem was the one that I thought of first.
Thinking about these things is fairly difficult (to me, at least), so I think I could only tell whether I would consider a patch thread-safe that released the GIL around matching under selected circumstances - if I had the patch available. I don't see any obvious reason (assuming Guido's list of conditions holds - i.e. you are holding references to everything you access).
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 ]