Add a low-level API to access interpreters, for David Beazley.
SF patch #436376.
This commit is contained in:
parent
130fb17578
commit
f5df46d701
|
@ -100,6 +100,13 @@ extern DL_IMPORT(PyThreadState *) _PyThreadState_Current;
|
|||
#define PyThreadState_GET() (_PyThreadState_Current)
|
||||
#endif
|
||||
|
||||
/* Routines for advanced debuggers, requested by David Beazley.
|
||||
Don't use unless you know what you are doing! */
|
||||
DL_IMPORT(PyInterpreterState *) PyInterpreterState_Head(void);
|
||||
DL_IMPORT(PyInterpreterState *) PyInterpreterState_Next(PyInterpreterState *);
|
||||
DL_IMPORT(PyThreadState *) PyInterpreterState_ThreadHead(PyInterpreterState *);
|
||||
DL_IMPORT(PyThreadState *) PyThreadState_Next(PyThreadState *);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -264,3 +264,28 @@ PyThreadState_GetDict(void)
|
|||
_PyThreadState_Current->dict = PyDict_New();
|
||||
return _PyThreadState_Current->dict;
|
||||
}
|
||||
|
||||
|
||||
/* Routines for advanced debuggers, requested by David Beazley.
|
||||
Don't use unless you know what you are doing! */
|
||||
|
||||
PyInterpreterState *
|
||||
PyInterpreterState_Head(void)
|
||||
{
|
||||
return interp_head;
|
||||
}
|
||||
|
||||
PyInterpreterState *
|
||||
PyInterpreterState_Next(PyInterpreterState *interp) {
|
||||
return interp->next;
|
||||
}
|
||||
|
||||
PyThreadState *
|
||||
PyInterpreterState_ThreadHead(PyInterpreterState *interp) {
|
||||
return interp->tstate_head;
|
||||
}
|
||||
|
||||
PyThreadState *
|
||||
PyThreadState_Next(PyThreadState *tstate) {
|
||||
return tstate->next;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue