1 #ifndef Py_INTERNAL_LIFECYCLE_H 2 #define Py_INTERNAL_LIFECYCLE_H 3 #ifdef __cplusplus 4 extern "C" { 5 #endif 6 7 #ifndef Py_BUILD_CORE 8 # error "this header requires Py_BUILD_CORE define" 9 #endif 10 11 #include "pycore_runtime.h" // _PyRuntimeState 12 13 /* Forward declarations */ 14 struct _PyArgv; 15 struct pyruntimestate; 16 17 /* True if the main interpreter thread exited due to an unhandled 18 * KeyboardInterrupt exception, suggesting the user pressed ^C. */ 19 PyAPI_DATA(int) _Py_UnhandledKeyboardInterrupt; 20 21 extern int _Py_SetFileSystemEncoding( 22 const char *encoding, 23 const char *errors); 24 extern void _Py_ClearFileSystemEncoding(void); 25 extern PyStatus _PyUnicode_InitEncodings(PyThreadState *tstate); 26 #ifdef MS_WINDOWS 27 extern int _PyUnicode_EnableLegacyWindowsFSEncoding(void); 28 #endif 29 30 PyAPI_FUNC(void) _Py_ClearStandardStreamEncoding(void); 31 32 PyAPI_FUNC(int) _Py_IsLocaleCoercionTarget(const char *ctype_loc); 33 34 /* Various one-time initializers */ 35 36 extern PyStatus _PyFaulthandler_Init(int enable); 37 extern int _PyTraceMalloc_Init(int enable); 38 extern PyObject * _PyBuiltin_Init(PyInterpreterState *interp); 39 extern PyStatus _PySys_Create( 40 PyThreadState *tstate, 41 PyObject **sysmod_p); 42 extern PyStatus _PySys_ReadPreinitWarnOptions(PyWideStringList *options); 43 extern PyStatus _PySys_ReadPreinitXOptions(PyConfig *config); 44 extern int _PySys_UpdateConfig(PyThreadState *tstate); 45 extern void _PySys_Fini(PyInterpreterState *interp); 46 extern int _PyBuiltins_AddExceptions(PyObject * bltinmod); 47 extern PyStatus _Py_HashRandomization_Init(const PyConfig *); 48 49 extern PyStatus _PyImportZip_Init(PyThreadState *tstate); 50 extern PyStatus _PyGC_Init(PyInterpreterState *interp); 51 extern PyStatus _PyAtExit_Init(PyInterpreterState *interp); 52 extern int _Py_Deepfreeze_Init(void); 53 54 /* Various internal finalizers */ 55 56 extern int _PySignal_Init(int install_signal_handlers); 57 extern void _PySignal_Fini(void); 58 59 extern void _PyImport_Fini(void); 60 extern void _PyImport_Fini2(void); 61 extern void _PyGC_Fini(PyInterpreterState *interp); 62 extern void _Py_HashRandomization_Fini(void); 63 extern void _PyFaulthandler_Fini(void); 64 extern void _PyHash_Fini(void); 65 extern void _PyTraceMalloc_Fini(void); 66 extern void _PyWarnings_Fini(PyInterpreterState *interp); 67 extern void _PyAST_Fini(PyInterpreterState *interp); 68 extern void _PyAtExit_Fini(PyInterpreterState *interp); 69 extern void _PyThread_FiniType(PyInterpreterState *interp); 70 extern void _Py_Deepfreeze_Fini(void); 71 extern void _PyArg_Fini(void); 72 73 extern PyStatus _PyGILState_Init(_PyRuntimeState *runtime); 74 extern PyStatus _PyGILState_SetTstate(PyThreadState *tstate); 75 extern void _PyGILState_Fini(PyInterpreterState *interp); 76 77 PyAPI_FUNC(void) _PyGC_DumpShutdownStats(PyInterpreterState *interp); 78 79 PyAPI_FUNC(PyStatus) _Py_PreInitializeFromPyArgv( 80 const PyPreConfig *src_config, 81 const struct _PyArgv *args); 82 PyAPI_FUNC(PyStatus) _Py_PreInitializeFromConfig( 83 const PyConfig *config, 84 const struct _PyArgv *args); 85 86 PyAPI_FUNC(wchar_t *) _Py_GetStdlibDir(void); 87 88 PyAPI_FUNC(int) _Py_HandleSystemExit(int *exitcode_p); 89 90 PyAPI_FUNC(PyObject*) _PyErr_WriteUnraisableDefaultHook(PyObject *unraisable); 91 92 PyAPI_FUNC(void) _PyErr_Print(PyThreadState *tstate); 93 PyAPI_FUNC(void) _PyErr_Display(PyObject *file, PyObject *exception, 94 PyObject *value, PyObject *tb); 95 96 PyAPI_FUNC(void) _PyThreadState_DeleteCurrent(PyThreadState *tstate); 97 98 extern void _PyAtExit_Call(PyInterpreterState *interp); 99 100 #ifdef __cplusplus 101 } 102 #endif 103 #endif /* !Py_INTERNAL_LIFECYCLE_H */ 104