Julien Kauffmann <julien.kauffm...@freelan.org> writes: > ... > Is there a way to know which thread had the GIL right before my > profiling thread acquired it ? Perhaps through a C extension ? I've > seen such profilers for Linux that take advantage of an ITIMER signal > to do that. Sadly this is not an option on Windows.
As you have already suspected, you will likely need a C extension: Python does (almost surely) not maintain a GIL history (not even a short one containing only the previous GIL holder). If you implement your monitoring thread (mostly) in C, there definitely is a global interpreter variable which contains a thread identifier for the thread currently holding the GIL. > Any feedback or remark concerning my technique is also welcome. It would be best if you could get informed when the GIL switches. Almost surely, this is unsupported on Python level. But perhaps on C level. I would check the (C) code for Python's GIL handling. -- https://mail.python.org/mailman/listinfo/python-list