mirror of
https://github.com/python/cpython.git
synced 2025-07-08 03:45:36 +00:00
bpo-43268: _Py_IsMainInterpreter() now expects interp (GH-24577)
The _Py_IsMainInterpreter() function now expects interp rather than tstate.
This commit is contained in:
parent
62078101ea
commit
101bf69ff1
9 changed files with 15 additions and 15 deletions
|
@ -22,11 +22,11 @@ _Py_IsMainThread(void)
|
||||||
|
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
_Py_IsMainInterpreter(PyThreadState* tstate)
|
_Py_IsMainInterpreter(PyInterpreterState *interp)
|
||||||
{
|
{
|
||||||
/* Use directly _PyRuntime rather than tstate->interp->runtime, since
|
/* Use directly _PyRuntime rather than tstate->interp->runtime, since
|
||||||
this function is used in performance critical code path (ceval) */
|
this function is used in performance critical code path (ceval) */
|
||||||
return (tstate->interp == _PyRuntime.interpreters.main);
|
return (interp == _PyRuntime.interpreters.main);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5719,7 +5719,7 @@ _PyLong_Init(PyThreadState *tstate)
|
||||||
tstate->interp->small_ints[i] = v;
|
tstate->interp->small_ints[i] = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_Py_IsMainInterpreter(tstate)) {
|
if (_Py_IsMainInterpreter(tstate->interp)) {
|
||||||
/* initialize int_info */
|
/* initialize int_info */
|
||||||
if (Int_InfoType.tp_name == NULL) {
|
if (Int_InfoType.tp_name == NULL) {
|
||||||
if (PyStructSequence_InitType2(&Int_InfoType, &int_info_desc) < 0) {
|
if (PyStructSequence_InitType2(&Int_InfoType, &int_info_desc) < 0) {
|
||||||
|
|
|
@ -286,7 +286,7 @@ void
|
||||||
_PyType_Fini(PyThreadState *tstate)
|
_PyType_Fini(PyThreadState *tstate)
|
||||||
{
|
{
|
||||||
_PyType_ClearCache(&tstate->interp->type_cache);
|
_PyType_ClearCache(&tstate->interp->type_cache);
|
||||||
if (_Py_IsMainInterpreter(tstate)) {
|
if (_Py_IsMainInterpreter(tstate->interp)) {
|
||||||
clear_slotdefs();
|
clear_slotdefs();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15701,7 +15701,7 @@ _PyUnicode_Init(PyThreadState *tstate)
|
||||||
return _PyStatus_NO_MEMORY();
|
return _PyStatus_NO_MEMORY();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_Py_IsMainInterpreter(tstate)) {
|
if (_Py_IsMainInterpreter(tstate->interp)) {
|
||||||
/* initialize the linebreak bloom filter */
|
/* initialize the linebreak bloom filter */
|
||||||
bloom_linebreak = make_bloom_mask(
|
bloom_linebreak = make_bloom_mask(
|
||||||
PyUnicode_2BYTE_KIND, linebreak,
|
PyUnicode_2BYTE_KIND, linebreak,
|
||||||
|
|
|
@ -298,7 +298,7 @@ PyStatus
|
||||||
_PyEval_InitGIL(PyThreadState *tstate)
|
_PyEval_InitGIL(PyThreadState *tstate)
|
||||||
{
|
{
|
||||||
#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS
|
#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS
|
||||||
if (!_Py_IsMainInterpreter(tstate)) {
|
if (!_Py_IsMainInterpreter(tstate->interp)) {
|
||||||
/* Currently, the GIL is shared by all interpreters,
|
/* Currently, the GIL is shared by all interpreters,
|
||||||
and only the main interpreter is responsible to create
|
and only the main interpreter is responsible to create
|
||||||
and destroy it. */
|
and destroy it. */
|
||||||
|
@ -326,7 +326,7 @@ void
|
||||||
_PyEval_FiniGIL(PyThreadState *tstate)
|
_PyEval_FiniGIL(PyThreadState *tstate)
|
||||||
{
|
{
|
||||||
#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS
|
#ifndef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS
|
||||||
if (!_Py_IsMainInterpreter(tstate)) {
|
if (!_Py_IsMainInterpreter(tstate->interp)) {
|
||||||
/* Currently, the GIL is shared by all interpreters,
|
/* Currently, the GIL is shared by all interpreters,
|
||||||
and only the main interpreter is responsible to create
|
and only the main interpreter is responsible to create
|
||||||
and destroy it. */
|
and destroy it. */
|
||||||
|
|
|
@ -1302,7 +1302,7 @@ _PyContext_ClearFreeList(PyThreadState *tstate)
|
||||||
void
|
void
|
||||||
_PyContext_Fini(PyThreadState *tstate)
|
_PyContext_Fini(PyThreadState *tstate)
|
||||||
{
|
{
|
||||||
if (_Py_IsMainInterpreter(tstate)) {
|
if (_Py_IsMainInterpreter(tstate->interp)) {
|
||||||
Py_CLEAR(_token_missing);
|
Py_CLEAR(_token_missing);
|
||||||
}
|
}
|
||||||
_PyContext_ClearFreeList(tstate);
|
_PyContext_ClearFreeList(tstate);
|
||||||
|
|
|
@ -441,7 +441,7 @@ _PyImport_FixupExtensionObject(PyObject *mod, PyObject *name,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_Py_IsMainInterpreter(tstate)) {
|
if (_Py_IsMainInterpreter(tstate->interp)) {
|
||||||
if (def->m_size == -1) {
|
if (def->m_size == -1) {
|
||||||
if (def->m_base.m_copy) {
|
if (def->m_base.m_copy) {
|
||||||
/* Somebody already imported the module,
|
/* Somebody already imported the module,
|
||||||
|
|
|
@ -430,7 +430,7 @@ interpreter_update_config(PyThreadState *tstate, int only_update_path_config)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_Py_IsMainInterpreter(tstate)) {
|
if (_Py_IsMainInterpreter(tstate->interp)) {
|
||||||
PyStatus status = _PyConfig_WritePathConfig(config);
|
PyStatus status = _PyConfig_WritePathConfig(config);
|
||||||
if (_PyStatus_EXCEPTION(status)) {
|
if (_PyStatus_EXCEPTION(status)) {
|
||||||
_PyErr_SetFromPyStatus(status);
|
_PyErr_SetFromPyStatus(status);
|
||||||
|
@ -627,7 +627,7 @@ static PyStatus
|
||||||
pycore_init_types(PyThreadState *tstate)
|
pycore_init_types(PyThreadState *tstate)
|
||||||
{
|
{
|
||||||
PyStatus status;
|
PyStatus status;
|
||||||
int is_main_interp = _Py_IsMainInterpreter(tstate);
|
int is_main_interp = _Py_IsMainInterpreter(tstate->interp);
|
||||||
|
|
||||||
status = _PyGC_Init(tstate);
|
status = _PyGC_Init(tstate);
|
||||||
if (_PyStatus_EXCEPTION(status)) {
|
if (_PyStatus_EXCEPTION(status)) {
|
||||||
|
@ -1003,7 +1003,7 @@ init_interp_main(PyThreadState *tstate)
|
||||||
assert(!_PyErr_Occurred(tstate));
|
assert(!_PyErr_Occurred(tstate));
|
||||||
|
|
||||||
PyStatus status;
|
PyStatus status;
|
||||||
int is_main_interp = _Py_IsMainInterpreter(tstate);
|
int is_main_interp = _Py_IsMainInterpreter(tstate->interp);
|
||||||
PyInterpreterState *interp = tstate->interp;
|
PyInterpreterState *interp = tstate->interp;
|
||||||
const PyConfig *config = _PyInterpreterState_GetConfig(interp);
|
const PyConfig *config = _PyInterpreterState_GetConfig(interp);
|
||||||
|
|
||||||
|
@ -1597,7 +1597,7 @@ finalize_interp_types(PyThreadState *tstate)
|
||||||
static void
|
static void
|
||||||
finalize_interp_clear(PyThreadState *tstate)
|
finalize_interp_clear(PyThreadState *tstate)
|
||||||
{
|
{
|
||||||
int is_main_interp = _Py_IsMainInterpreter(tstate);
|
int is_main_interp = _Py_IsMainInterpreter(tstate->interp);
|
||||||
|
|
||||||
/* Clear interpreter state and all thread states */
|
/* Clear interpreter state and all thread states */
|
||||||
_PyInterpreterState_Clear(tstate);
|
_PyInterpreterState_Clear(tstate);
|
||||||
|
@ -1622,7 +1622,7 @@ finalize_interp_clear(PyThreadState *tstate)
|
||||||
static void
|
static void
|
||||||
finalize_interp_delete(PyThreadState *tstate)
|
finalize_interp_delete(PyThreadState *tstate)
|
||||||
{
|
{
|
||||||
if (_Py_IsMainInterpreter(tstate)) {
|
if (_Py_IsMainInterpreter(tstate->interp)) {
|
||||||
/* Cleanup auto-thread-state */
|
/* Cleanup auto-thread-state */
|
||||||
_PyGILState_Fini(tstate);
|
_PyGILState_Fini(tstate);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1327,7 +1327,7 @@ PyThreadState_IsCurrent(PyThreadState *tstate)
|
||||||
PyStatus
|
PyStatus
|
||||||
_PyGILState_Init(PyThreadState *tstate)
|
_PyGILState_Init(PyThreadState *tstate)
|
||||||
{
|
{
|
||||||
if (!_Py_IsMainInterpreter(tstate)) {
|
if (!_Py_IsMainInterpreter(tstate->interp)) {
|
||||||
/* Currently, PyGILState is shared by all interpreters. The main
|
/* Currently, PyGILState is shared by all interpreters. The main
|
||||||
* interpreter is responsible to initialize it. */
|
* interpreter is responsible to initialize it. */
|
||||||
return _PyStatus_OK();
|
return _PyStatus_OK();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue