[issue26461] PyInterpreterState_Head(), PyThreadState_Next() etc can't be sanely used

STINNER Victor report at bugs.python.org
Mon Feb 29 18:31:52 EST 2016


STINNER Victor added the comment:

fijal explained on IRC his use case: implement vmprof on Windows, a statistical profiler, using a C thread running in the Python process.

The _PyThread_CurrentFrames() API requires to be called with the GIL hold which is not acceptable for his use case. Having to wait for the GIL would serialize statistics plots and so would have a poor quality, probably similar to cProfile.

The use case is to implement something like _PyThread_CurrentFrames() without holding the GIL.

--

fijal mentioned pystate.c/.h functions which come with this comment:

/* Routines for advanced debuggers, requested by David Beazley.
   Don't use unless you know what you are doing! */

These functions are not safe if you don't hold head_mutex lock, but this lock is private in pystate.c (declared with "static").

I guess that they are safe to use if the whole process is stopped by a debugger like gdb.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue26461>
_______________________________________


More information about the Python-bugs-list mailing list