[Python-Dev] Extension modules, Threading, and the GIL (original) (raw)

Mark Hammond markh@skippinet.com.au
Thu, 9 Jan 2003 23:07:40 +1100


[Martin]

Tim Peters <tim.one@comcast.net> writes:

> I'd like to intensify the problem, though: you're in a > thread and you want to call a Python API function safely. > Period. Are there semantic requirements to the Python API in this context, with respect to the state of global things? E.g. when I run the simple string "import sys;print sys.modules", would I need to get the same output that I get elsewhere? If yes, is it possible to characterize "elsewhere" any better?

Yes, good catch. A PyInterpreterState must be known, and as you stated previously, it is trivial to get one of these and stash it away globally. The PyThreadState is the problem child.

Mark.