Add a low-level API to access interpreters, for David Beazley.

SF patch #436376.
This commit is contained in:
Guido van Rossum 2001-07-19 12:19:27 +00:00
parent 130fb17578
commit f5df46d701
2 changed files with 32 additions and 0 deletions

View File

@ -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

View File

@ -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;
}