> 1. Some global interpreter state/modules are protected (where are these > globals at?) It's the interpreter and thread state itself (pystate.h), for the thread state, also _PyThreadState_Current. Then there is the GC state, in particular "generations". There are various caches and counters also. > 2. When writing C extensions I can change the state of my python object > without worrying about synchronization > 3. When writing C extensions I can change my own internal C state > without worrying about synchronization (unless I have other, non-python > threads running) 4. The builtin container types are protected by the GIL, and various other builtin objects 5. Reference counting is protected by the GIL 6. PyMalloc is protected by the GIL. > Does anyone know of a place where the GIL is required when not operating > on a python object? See 6 above, also (obviously) 1. > I've only started looking at the code recently, so please forgive my > naivety. I'm still learning how the interpreter works on a high level, > let alone all the nitty gritty details! Good luck! Martin
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4