Add a low-level API to access interpreters, for David Beazley.
SF patch #436376.
This commit is contained in:
@@ -100,6 +100,13 @@ extern DL_IMPORT(PyThreadState *) _PyThreadState_Current;
|
|||||||
#define PyThreadState_GET() (_PyThreadState_Current)
|
#define PyThreadState_GET() (_PyThreadState_Current)
|
||||||
#endif
|
#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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -264,3 +264,28 @@ PyThreadState_GetDict(void)
|
|||||||
_PyThreadState_Current->dict = PyDict_New();
|
_PyThreadState_Current->dict = PyDict_New();
|
||||||
return _PyThreadState_Current->dict;
|
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;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user