Kaydet (Commit) f5df46d7 authored tarafından Guido van Rossum's avatar Guido van Rossum

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

SF patch #436376.
üst 130fb175
...@@ -100,6 +100,13 @@ extern DL_IMPORT(PyThreadState *) _PyThreadState_Current; ...@@ -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) ...@@ -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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment