diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2019-02-23 18:35:52 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-23 18:35:52 (GMT) |
commit | be3b295838547bba267eb08434b418ef0df87ee0 (patch) | |
tree | 8daa92ecd7088d6ace08833f64ba2251be9b310f /Include/cpython | |
parent | 175421b58cc97a2555e474f479f30a6c5d2250b0 (diff) | |
download | cpython-be3b295838547bba267eb08434b418ef0df87ee0.zip cpython-be3b295838547bba267eb08434b418ef0df87ee0.tar.gz cpython-be3b295838547bba267eb08434b418ef0df87ee0.tar.bz2 |
bpo-35886: Make PyInterpreterState an opaque type in the public API. (GH-11731)
Move PyInterpreterState into the "internal" header files.
Diffstat (limited to 'Include/cpython')
-rw-r--r-- | Include/cpython/pystate.h | 65 |
1 files changed, 5 insertions, 60 deletions
diff --git a/Include/cpython/pystate.h b/Include/cpython/pystate.h index 78e9a5e..0da59d9 100644 --- a/Include/cpython/pystate.h +++ b/Include/cpython/pystate.h @@ -6,8 +6,6 @@ extern "C" { #endif -typedef PyObject* (*_PyFrameEvalFunction)(struct _frame *, int); - /* Placeholders while working on the new configuration API * * See PEP 432 for final anticipated contents @@ -30,63 +28,9 @@ typedef struct { (_PyMainInterpreterConfig){.install_signal_handlers = -1} /* Note: _PyMainInterpreterConfig_INIT sets other fields to 0/NULL */ -typedef struct _is { - - struct _is *next; - struct _ts *tstate_head; - - int64_t id; - int64_t id_refcount; - PyThread_type_lock id_mutex; - - PyObject *modules; - PyObject *modules_by_index; - PyObject *sysdict; - PyObject *builtins; - PyObject *importlib; - - /* Used in Python/sysmodule.c. */ - int check_interval; - - /* Used in Modules/_threadmodule.c. */ - long num_threads; - /* Support for runtime thread stack size tuning. - A value of 0 means using the platform's default stack size - or the size specified by the THREAD_STACK_SIZE macro. */ - /* Used in Python/thread.c. */ - size_t pythread_stacksize; - - PyObject *codec_search_path; - PyObject *codec_search_cache; - PyObject *codec_error_registry; - int codecs_initialized; - int fscodec_initialized; - - _PyCoreConfig core_config; - _PyMainInterpreterConfig config; -#ifdef HAVE_DLOPEN - int dlopenflags; -#endif - - PyObject *builtins_copy; - PyObject *import_func; - /* Initialized to PyEval_EvalFrameDefault(). */ - _PyFrameEvalFunction eval_frame; - - Py_ssize_t co_extra_user_count; - freefunc co_extra_freefuncs[MAX_CO_EXTRA_USERS]; - -#ifdef HAVE_FORK - PyObject *before_forkers; - PyObject *after_forkers_parent; - PyObject *after_forkers_child; -#endif - /* AtExit module */ - void (*pyexitfunc)(PyObject *); - PyObject *pyexitmodule; +PyAPI_FUNC(_PyCoreConfig *) _PyInterpreterState_GetCoreConfig(PyInterpreterState *); +PyAPI_FUNC(_PyMainInterpreterConfig *) _PyInterpreterState_GetMainConfig(PyInterpreterState *); - uint64_t tstate_next_unique_id; -} PyInterpreterState; /* State unique per thread */ @@ -122,7 +66,8 @@ typedef struct _err_stackitem { } _PyErr_StackItem; -typedef struct _ts { +// The PyThreadState typedef is in Include/pystate.h. +struct _ts { /* See Python/ceval.c for comments explaining most fields */ struct _ts *prev; @@ -214,7 +159,7 @@ typedef struct _ts { /* XXX signal handlers should also be here */ -} PyThreadState; +}; /* Get the current interpreter state. |