%PDF- %PDF-
Direktori : /proc/thread-self/root/opt/alt/python313/include/python3.13/cpython/ |
Current File : //proc/thread-self/root/opt/alt/python313/include/python3.13/cpython/pylifecycle.h |
#ifndef Py_CPYTHON_PYLIFECYCLE_H # error "this header file must not be included directly" #endif /* Py_FrozenMain is kept out of the Limited API until documented and present in all builds of Python */ PyAPI_FUNC(int) Py_FrozenMain(int argc, char **argv); /* PEP 432 Multi-phase initialization API (Private while provisional!) */ PyAPI_FUNC(PyStatus) Py_PreInitialize( const PyPreConfig *src_config); PyAPI_FUNC(PyStatus) Py_PreInitializeFromBytesArgs( const PyPreConfig *src_config, Py_ssize_t argc, char **argv); PyAPI_FUNC(PyStatus) Py_PreInitializeFromArgs( const PyPreConfig *src_config, Py_ssize_t argc, wchar_t **argv); /* Initialization and finalization */ PyAPI_FUNC(PyStatus) Py_InitializeFromConfig( const PyConfig *config); // Python 3.8 provisional API (PEP 587) PyAPI_FUNC(PyStatus) _Py_InitializeMain(void); PyAPI_FUNC(int) Py_RunMain(void); PyAPI_FUNC(void) _Py_NO_RETURN Py_ExitStatusException(PyStatus err); PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *); /* --- PyInterpreterConfig ------------------------------------ */ #define PyInterpreterConfig_DEFAULT_GIL (0) #define PyInterpreterConfig_SHARED_GIL (1) #define PyInterpreterConfig_OWN_GIL (2) typedef struct { // XXX "allow_object_sharing"? "own_objects"? int use_main_obmalloc; int allow_fork; int allow_exec; int allow_threads; int allow_daemon_threads; int check_multi_interp_extensions; int gil; } PyInterpreterConfig; #define _PyInterpreterConfig_INIT \ { \ .use_main_obmalloc = 0, \ .allow_fork = 0, \ .allow_exec = 0, \ .allow_threads = 1, \ .allow_daemon_threads = 0, \ .check_multi_interp_extensions = 1, \ .gil = PyInterpreterConfig_OWN_GIL, \ } // gh-117649: The free-threaded build does not currently support single-phase // init extensions in subinterpreters. For now, we ensure that // `check_multi_interp_extensions` is always `1`, even in the legacy config. #ifdef Py_GIL_DISABLED # define _PyInterpreterConfig_LEGACY_CHECK_MULTI_INTERP_EXTENSIONS 1 #else # define _PyInterpreterConfig_LEGACY_CHECK_MULTI_INTERP_EXTENSIONS 0 #endif #define _PyInterpreterConfig_LEGACY_INIT \ { \ .use_main_obmalloc = 1, \ .allow_fork = 1, \ .allow_exec = 1, \ .allow_threads = 1, \ .allow_daemon_threads = 1, \ .check_multi_interp_extensions = _PyInterpreterConfig_LEGACY_CHECK_MULTI_INTERP_EXTENSIONS, \ .gil = PyInterpreterConfig_SHARED_GIL, \ } PyAPI_FUNC(PyStatus) Py_NewInterpreterFromConfig( PyThreadState **tstate_p, const PyInterpreterConfig *config); typedef void (*atexit_datacallbackfunc)(void *); PyAPI_FUNC(int) PyUnstable_AtExit( PyInterpreterState *, atexit_datacallbackfunc, void *);