bpo-38858: Add _Py_IsMainInterpreter(tstate) (GH-17293)
This commit is contained in:
parent
db7925a1ca
commit
fff7bbfdb6
|
@ -269,6 +269,8 @@ PyAPI_FUNC(void) _PyRuntime_Finalize(void);
|
|||
#define _Py_CURRENTLY_FINALIZING(runtime, tstate) \
|
||||
(runtime->finalizing == tstate)
|
||||
|
||||
PyAPI_FUNC(int) _Py_IsMainInterpreter(PyThreadState* tstate);
|
||||
|
||||
|
||||
/* Variable and macro for in-line access to current thread
|
||||
and interpreter state */
|
||||
|
|
|
@ -1466,9 +1466,9 @@ static PyObject *
|
|||
_thread__is_main_interpreter_impl(PyObject *module)
|
||||
/*[clinic end generated code: output=7dd82e1728339adc input=cc1eb00fd4598915]*/
|
||||
{
|
||||
_PyRuntimeState *runtime = &_PyRuntime;
|
||||
PyInterpreterState *interp = _PyRuntimeState_GetThreadState(runtime)->interp;
|
||||
return PyBool_FromLong(interp == runtime->interpreters.main);
|
||||
PyThreadState *tstate = _PyThreadState_GET();
|
||||
int is_main = _Py_IsMainInterpreter(tstate);
|
||||
return PyBool_FromLong(is_main);
|
||||
}
|
||||
|
||||
static PyMethodDef thread_methods[] = {
|
||||
|
|
|
@ -159,6 +159,12 @@ _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime)
|
|||
#define HEAD_UNLOCK(runtime) \
|
||||
PyThread_release_lock((runtime)->interpreters.mutex)
|
||||
|
||||
int
|
||||
_Py_IsMainInterpreter(PyThreadState* tstate)
|
||||
{
|
||||
return (tstate->interp == tstate->interp->runtime->interpreters.main);
|
||||
}
|
||||
|
||||
/* Forward declaration */
|
||||
static void _PyGILState_NoteThreadState(
|
||||
struct _gilstate_runtime_state *gilstate, PyThreadState* tstate);
|
||||
|
|
Loading…
Reference in New Issue