From f5df46d701d29baf738365da6fcf1b8a3ceabb71 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 19 Jul 2001 12:19:27 +0000 Subject: [PATCH] Add a low-level API to access interpreters, for David Beazley. SF patch #436376. --- Include/pystate.h | 7 +++++++ Python/pystate.c | 25 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/Include/pystate.h b/Include/pystate.h index 41024e84bdd..712e9dc2b56 100644 --- a/Include/pystate.h +++ b/Include/pystate.h @@ -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 diff --git a/Python/pystate.c b/Python/pystate.c index 2f15fdfe94e..9a41ccffd46 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -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; +}