Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Include/cpython/pystate.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ PyAPI_FUNC(int) PyGILState_Check(void);
This function doesn't check for error. Return NULL before _PyGILState_Init()
is called and after _PyGILState_Fini() is called.

See also _PyInterpreterState_Get() and _PyInterpreterState_GET_UNSAFE(). */
See also _PyInterpreterState_Get() and _PyInterpreterState_GET(). */
PyAPI_FUNC(PyInterpreterState *) _PyGILState_GetInterpreterStateUnsafe(void);

/* The implementation of sys._current_frames() Returns a dict mapping
Expand Down
3 changes: 2 additions & 1 deletion Include/internal/pycore_pystate.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,9 @@ static inline PyThreadState *_PyThreadState_GET(void) {

See also _PyInterpreterState_Get()
and _PyGILState_GetInterpreterStateUnsafe(). */
static inline PyInterpreterState* _PyInterpreterState_GET_UNSAFE(void) {
static inline PyInterpreterState* _PyInterpreterState_GET(void) {
PyThreadState *tstate = _PyThreadState_GET();
assert(tstate != NULL);
return tstate->interp;
}

Expand Down
2 changes: 1 addition & 1 deletion Modules/_io/textio.c
Original file line number Diff line number Diff line change
Expand Up @@ -994,7 +994,7 @@ io_check_errors(PyObject *errors)
{
assert(errors != NULL && errors != Py_None);

PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
#ifndef Py_DEBUG
/* In release mode, only check in development mode (-X dev) */
if (!_PyInterpreterState_GetConfig(interp)->dev_mode) {
Expand Down
6 changes: 3 additions & 3 deletions Modules/_threadmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -1091,7 +1091,7 @@ thread_PyThread_start_new_thread(PyObject *self, PyObject *fargs)
boot = PyMem_NEW(struct bootstate, 1);
if (boot == NULL)
return PyErr_NoMemory();
boot->interp = _PyInterpreterState_GET_UNSAFE();
boot->interp = _PyInterpreterState_GET();
boot->func = func;
boot->args = args;
boot->keyw = keyw;
Expand Down Expand Up @@ -1213,7 +1213,7 @@ particular thread within a system.");
static PyObject *
thread__count(PyObject *self, PyObject *Py_UNUSED(ignored))
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
return PyLong_FromLong(interp->num_threads);
}

Expand Down Expand Up @@ -1556,7 +1556,7 @@ PyInit__thread(void)
PyObject *m, *d, *v;
double time_max;
double timeout_max;
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();

/* Initialize types: */
if (PyType_Ready(&localdummytype) < 0)
Expand Down
2 changes: 1 addition & 1 deletion Modules/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -498,7 +498,7 @@ pymain_repl(PyConfig *config, PyCompilerFlags *cf, int *exitcode)
static void
pymain_run_python(int *exitcode)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
/* pymain_run_stdin() modify the config */
PyConfig *config = (PyConfig*)_PyInterpreterState_GetConfig(interp);

Expand Down
14 changes: 7 additions & 7 deletions Modules/posixmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -451,7 +451,7 @@ run_at_forkers(PyObject *lst, int reverse)
void
PyOS_BeforeFork(void)
{
run_at_forkers(_PyInterpreterState_GET_UNSAFE()->before_forkers, 1);
run_at_forkers(_PyInterpreterState_GET()->before_forkers, 1);

_PyImport_AcquireLock();
}
Expand All @@ -462,7 +462,7 @@ PyOS_AfterFork_Parent(void)
if (_PyImport_ReleaseLock() <= 0)
Py_FatalError("failed releasing import lock after fork");

run_at_forkers(_PyInterpreterState_GET_UNSAFE()->after_forkers_parent, 0);
run_at_forkers(_PyInterpreterState_GET()->after_forkers_parent, 0);
}

void
Expand All @@ -476,7 +476,7 @@ PyOS_AfterFork_Child(void)
_PyRuntimeState_ReInitThreads(runtime);
_PyInterpreterState_DeleteExceptMain(runtime);

run_at_forkers(_PyInterpreterState_GET_UNSAFE()->after_forkers_child, 0);
run_at_forkers(_PyInterpreterState_GET()->after_forkers_child, 0);
}

static int
Expand Down Expand Up @@ -6185,7 +6185,7 @@ os_register_at_fork_impl(PyObject *module, PyObject *before,
check_null_or_callable(after_in_parent, "after_in_parent")) {
return NULL;
}
interp = _PyInterpreterState_GET_UNSAFE();
interp = _PyInterpreterState_GET();

if (register_at_forker(&interp->before_forkers, before)) {
return NULL;
Expand Down Expand Up @@ -6216,7 +6216,7 @@ os_fork1_impl(PyObject *module)
{
pid_t pid;

if (_PyInterpreterState_GET_UNSAFE() != PyInterpreterState_Main()) {
if (_PyInterpreterState_GET() != PyInterpreterState_Main()) {
PyErr_SetString(PyExc_RuntimeError, "fork not supported for subinterpreters");
return NULL;
}
Expand Down Expand Up @@ -6251,7 +6251,7 @@ os_fork_impl(PyObject *module)
{
pid_t pid;

if (_PyInterpreterState_GET_UNSAFE() != PyInterpreterState_Main()) {
if (_PyInterpreterState_GET() != PyInterpreterState_Main()) {
PyErr_SetString(PyExc_RuntimeError, "fork not supported for subinterpreters");
return NULL;
}
Expand Down Expand Up @@ -6859,7 +6859,7 @@ os_forkpty_impl(PyObject *module)
int master_fd = -1;
pid_t pid;

if (_PyInterpreterState_GET_UNSAFE() != PyInterpreterState_Main()) {
if (_PyInterpreterState_GET() != PyInterpreterState_Main()) {
PyErr_SetString(PyExc_RuntimeError, "fork not supported for subinterpreters");
return NULL;
}
Expand Down
4 changes: 2 additions & 2 deletions Modules/signalmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -1784,7 +1784,7 @@ PyOS_FiniInterrupts(void)
int
PyOS_InterruptOccurred(void)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
if (!_Py_ThreadCanHandleSignals(interp)) {
return 0;
}
Expand Down Expand Up @@ -1821,7 +1821,7 @@ _PySignal_AfterFork(void)
int
_PyOS_IsMainThread(void)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
return _Py_ThreadCanHandleSignals(interp);
}

Expand Down
6 changes: 3 additions & 3 deletions Objects/codeobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#include "structmember.h"
#include "pycore_code.h"
#include "pycore_interp.h" // PyInterpreterState.co_extra_freefuncs
#include "pycore_pystate.h" // _PyInterpreterState_GET_UNSAFE()
#include "pycore_pystate.h" // _PyInterpreterState_GET()
#include "pycore_tupleobject.h"
#include "clinic/codeobject.c.h"

Expand Down Expand Up @@ -555,7 +555,7 @@ code_dealloc(PyCodeObject *co)
co->co_opcache_size = 0;

if (co->co_extra != NULL) {
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
_PyCodeObjectExtra *co_extra = co->co_extra;

for (Py_ssize_t i = 0; i < co_extra->ce_size; i++) {
Expand Down Expand Up @@ -1074,7 +1074,7 @@ _PyCode_GetExtra(PyObject *code, Py_ssize_t index, void **extra)
int
_PyCode_SetExtra(PyObject *code, Py_ssize_t index, void *extra)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();

if (!PyCode_Check(code) || index < 0 ||
index >= interp->co_extra_user_count) {
Expand Down
4 changes: 2 additions & 2 deletions Objects/moduleobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ _add_methods_to_object(PyObject *module, PyObject *name, PyMethodDef *functions)
PyObject *
PyModule_Create2(struct PyModuleDef* module, int module_api_version)
{
if (!_PyImport_IsInitialized(_PyInterpreterState_GET_UNSAFE())) {
if (!_PyImport_IsInitialized(_PyInterpreterState_GET())) {
PyErr_SetString(PyExc_SystemError,
"Python import machinery not initialized");
return NULL;
Expand Down Expand Up @@ -684,7 +684,7 @@ module_dealloc(PyModuleObject *m)
static PyObject *
module_repr(PyModuleObject *m)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();

return PyObject_CallMethod(interp->importlib, "_module_repr", "O", m);
}
Expand Down
8 changes: 4 additions & 4 deletions Objects/unicodeobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ unicode_check_encoding_errors(const char *encoding, const char *errors)
return 0;
}

PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
#ifndef Py_DEBUG
/* In release mode, only check in development mode (-X dev) */
if (!_PyInterpreterState_GetConfig(interp)->dev_mode) {
Expand Down Expand Up @@ -3615,7 +3615,7 @@ PyUnicode_EncodeLocale(PyObject *unicode, const char *errors)
PyObject *
PyUnicode_EncodeFSDefault(PyObject *unicode)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->fs_codec.utf8) {
return unicode_encode_utf8(unicode,
interp->fs_codec.error_handler,
Expand Down Expand Up @@ -3851,7 +3851,7 @@ PyUnicode_DecodeFSDefault(const char *s) {
PyObject*
PyUnicode_DecodeFSDefaultAndSize(const char *s, Py_ssize_t size)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->fs_codec.utf8) {
return unicode_decode_utf8(s, size,
interp->fs_codec.error_handler,
Expand Down Expand Up @@ -16009,7 +16009,7 @@ _PyUnicode_FiniEncodings(PyThreadState *tstate)
int
_PyUnicode_EnableLegacyWindowsFSEncoding(void)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
PyConfig *config = (PyConfig *)_PyInterpreterState_GetConfig(interp);

/* Set the filesystem encoding to mbcs/replace (PEP 529) */
Expand Down
6 changes: 3 additions & 3 deletions Parser/listnode.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include "Python.h"
#include "pycore_interp.h" // PyInterpreterState.parser
#include "pycore_pystate.h" // _PyInterpreterState_GET_UNSAFE
#include "pycore_pystate.h" // _PyInterpreterState_GET
#include "token.h"
#include "node.h"

Expand All @@ -20,7 +20,7 @@ PyNode_ListTree(node *n)
static void
listnode(FILE *fp, node *n)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();

interp->parser.listnode.level = 0;
interp->parser.listnode.atbol = 1;
Expand All @@ -40,7 +40,7 @@ list1node(FILE *fp, node *n)
list1node(fp, CHILD(n, i));
}
else if (ISTERMINAL(TYPE(n))) {
interp = _PyInterpreterState_GET_UNSAFE();
interp = _PyInterpreterState_GET();
switch (TYPE(n)) {
case INDENT:
interp->parser.listnode.level++;
Expand Down
4 changes: 2 additions & 2 deletions Python/_warnings.c
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ get_warnings_attr(_Py_Identifier *attr_id, int try_import)
gone, then we can't even use PyImport_GetModule without triggering
an interpreter abort.
*/
if (!_PyInterpreterState_GET_UNSAFE()->modules) {
if (!_PyInterpreterState_GET()->modules) {
return NULL;
}
warnings_module = PyImport_GetModule(warnings_str);
Expand Down Expand Up @@ -840,7 +840,7 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno,
}

if (f == NULL) {
globals = _PyInterpreterState_GET_UNSAFE()->sysdict;
globals = _PyInterpreterState_GET()->sysdict;
*filename = PyUnicode_FromString("sys");
*lineno = 1;
}
Expand Down
2 changes: 1 addition & 1 deletion Python/ceval.c
Original file line number Diff line number Diff line change
Expand Up @@ -5562,7 +5562,7 @@ _Py_GetDXProfile(PyObject *self, PyObject *args)
Py_ssize_t
_PyEval_RequestCodeExtraIndex(freefunc free)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
Py_ssize_t new_index;

if (interp->co_extra_user_count == MAX_CO_EXTRA_USERS - 1) {
Expand Down
12 changes: 6 additions & 6 deletions Python/codecs.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ static int _PyCodecRegistry_Init(void); /* Forward */

int PyCodec_Register(PyObject *search_function)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->codec_search_path == NULL && _PyCodecRegistry_Init())
goto onError;
if (search_function == NULL) {
Expand Down Expand Up @@ -105,7 +105,7 @@ PyObject *_PyCodec_Lookup(const char *encoding)
return NULL;
}

PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->codec_search_path == NULL && _PyCodecRegistry_Init()) {
return NULL;
}
Expand Down Expand Up @@ -188,7 +188,7 @@ int _PyCodec_Forget(const char *encoding)
PyObject *v;
int result;

PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->codec_search_path == NULL) {
return -1;
}
Expand Down Expand Up @@ -621,7 +621,7 @@ PyObject *_PyCodec_DecodeText(PyObject *object,
Return 0 on success, -1 on error */
int PyCodec_RegisterError(const char *name, PyObject *error)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->codec_search_path == NULL && _PyCodecRegistry_Init())
return -1;
if (!PyCallable_Check(error)) {
Expand All @@ -639,7 +639,7 @@ PyObject *PyCodec_LookupError(const char *name)
{
PyObject *handler = NULL;

PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->codec_search_path == NULL && _PyCodecRegistry_Init())
return NULL;

Expand Down Expand Up @@ -1491,7 +1491,7 @@ static int _PyCodecRegistry_Init(void)
}
};

PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
PyObject *mod;

if (interp->codec_search_path != NULL)
Expand Down
4 changes: 2 additions & 2 deletions Python/dynload_shlib.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include "Python.h"
#include "pycore_interp.h" // _PyInterpreterState.dlopenflags
#include "pycore_pystate.h" // _PyInterpreterState_GET_UNSAFE()
#include "pycore_pystate.h" // _PyInterpreterState_GET()
#include "importdl.h"

#include <sys/types.h>
Expand Down Expand Up @@ -95,7 +95,7 @@ _PyImport_FindSharedFuncptr(const char *prefix,
}
}

dlopenflags = _PyInterpreterState_GET_UNSAFE()->dlopenflags;
dlopenflags = _PyInterpreterState_GET()->dlopenflags;

handle = dlopen(pathname, dlopenflags);

Expand Down
6 changes: 3 additions & 3 deletions Python/import.c
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ _PyImport_Fini2(void)
PyObject *
PyImport_GetModuleDict(void)
{
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
if (interp->modules == NULL) {
Py_FatalError("interpreter has no modules dictionary");
}
Expand Down Expand Up @@ -644,7 +644,7 @@ long
PyImport_GetMagicNumber(void)
{
long res;
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
PyObject *external, *pyc_magic;

external = PyObject_GetAttrString(interp->importlib, "_bootstrap_external");
Expand Down Expand Up @@ -980,7 +980,7 @@ PyImport_ExecCodeModuleWithPathnames(const char *name, PyObject *co,
goto error;
}
else if (cpathobj != NULL) {
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *interp = _PyInterpreterState_GET();
_Py_IDENTIFIER(_get_sourcefile);

if (interp == NULL) {
Expand Down
2 changes: 1 addition & 1 deletion Python/pylifecycle.c
Original file line number Diff line number Diff line change
Expand Up @@ -2355,7 +2355,7 @@ Py_ExitStatusException(PyStatus status)
/* For the atexit module. */
void _Py_PyAtExit(void (*func)(PyObject *), PyObject *module)
{
PyInterpreterState *is = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *is = _PyInterpreterState_GET();

/* Guard against API misuse (see bpo-17852) */
assert(is->pyexitfunc == NULL || is->pyexitfunc == func);
Expand Down
2 changes: 1 addition & 1 deletion Python/pystate.c
Original file line number Diff line number Diff line change
Expand Up @@ -661,7 +661,7 @@ PyObject*
PyState_FindModule(struct PyModuleDef* module)
{
Py_ssize_t index = module->m_base.m_index;
PyInterpreterState *state = _PyInterpreterState_GET_UNSAFE();
PyInterpreterState *state = _PyInterpreterState_GET();
PyObject *res;
if (module->m_slots) {
return NULL;
Expand Down
Loading