Download include/python3.9/internal/pycore_runtime.h from camenduru/slahmr-test: direct link, hf CLI and curl.
- Browser
- Download file 4.45 kB
-
https://huggingface.co/camenduru/slahmr-test/resolve/main/include/python3.9/internal/pycore_runtime.h
- Command line
-
hf download hf://camenduru/slahmr-test/include/python3.9/internal/pycore_runtime.h
-
curl -L -o pycore_runtime.h https://huggingface.co/camenduru/slahmr-test/resolve/main/include/python3.9/internal/pycore_runtime.h
4.45 kB
| extern "C" { | |
| /* ceval state */ | |
| struct _ceval_runtime_state { | |
| /* Request for checking signals. It is shared by all interpreters (see | |
| bpo-40513). Any thread of any interpreter can receive a signal, but only | |
| the main thread of the main interpreter can handle signals: see | |
| _Py_ThreadCanHandleSignals(). */ | |
| _Py_atomic_int signals_pending; | |
| struct _gil_runtime_state gil; | |
| }; | |
| /* GIL state */ | |
| struct _gilstate_runtime_state { | |
| /* bpo-26558: Flag to disable PyGILState_Check(). | |
| If set to non-zero, PyGILState_Check() always return 1. */ | |
| int check_enabled; | |
| /* Assuming the current thread holds the GIL, this is the | |
| PyThreadState for the current thread. */ | |
| _Py_atomic_address tstate_current; | |
| /* The single PyInterpreterState used by this process' | |
| GILState implementation | |
| */ | |
| /* TODO: Given interp_main, it may be possible to kill this ref */ | |
| PyInterpreterState *autoInterpreterState; | |
| Py_tss_t autoTSSkey; | |
| }; | |
| /* Runtime audit hook state */ | |
| typedef struct _Py_AuditHookEntry { | |
| struct _Py_AuditHookEntry *next; | |
| Py_AuditHookFunction hookCFunction; | |
| void *userData; | |
| } _Py_AuditHookEntry; | |
| /* Full Python runtime state */ | |
| typedef struct pyruntimestate { | |
| /* Is running Py_PreInitialize()? */ | |
| int preinitializing; | |
| /* Is Python preinitialized? Set to 1 by Py_PreInitialize() */ | |
| int preinitialized; | |
| /* Is Python core initialized? Set to 1 by _Py_InitializeCore() */ | |
| int core_initialized; | |
| /* Is Python fully initialized? Set to 1 by Py_Initialize() */ | |
| int initialized; | |
| /* Set by Py_FinalizeEx(). Only reset to NULL if Py_Initialize() | |
| is called again. | |
| Use _PyRuntimeState_GetFinalizing() and _PyRuntimeState_SetFinalizing() | |
| to access it, don't access it directly. */ | |
| _Py_atomic_address _finalizing; | |
| struct pyinterpreters { | |
| PyThread_type_lock mutex; | |
| PyInterpreterState *head; | |
| PyInterpreterState *main; | |
| /* _next_interp_id is an auto-numbered sequence of small | |
| integers. It gets initialized in _PyInterpreterState_Init(), | |
| which is called in Py_Initialize(), and used in | |
| PyInterpreterState_New(). A negative interpreter ID | |
| indicates an error occurred. The main interpreter will | |
| always have an ID of 0. Overflow results in a RuntimeError. | |
| If that becomes a problem later then we can adjust, e.g. by | |
| using a Python int. */ | |
| int64_t next_id; | |
| } interpreters; | |
| // XXX Remove this field once we have a tp_* slot. | |
| struct _xidregistry { | |
| PyThread_type_lock mutex; | |
| struct _xidregitem *head; | |
| } xidregistry; | |
| unsigned long main_thread; | |
| void (*exitfuncs[NEXITFUNCS])(void); | |
| int nexitfuncs; | |
| struct _ceval_runtime_state ceval; | |
| struct _gilstate_runtime_state gilstate; | |
| PyPreConfig preconfig; | |
| Py_OpenCodeHookFunction open_code_hook; | |
| void *open_code_userdata; | |
| _Py_AuditHookEntry *audit_hook_head; | |
| // XXX Consolidate globals found via the check-c-globals script. | |
| } _PyRuntimeState; | |
| /* Note: _PyRuntimeState_INIT sets other fields to 0/NULL */ | |
| PyAPI_DATA(_PyRuntimeState) _PyRuntime; | |
| PyAPI_FUNC(PyStatus) _PyRuntimeState_Init(_PyRuntimeState *runtime); | |
| PyAPI_FUNC(void) _PyRuntimeState_Fini(_PyRuntimeState *runtime); | |
| PyAPI_FUNC(void) _PyRuntimeState_ReInitThreads(_PyRuntimeState *runtime); | |
| /* Initialize _PyRuntimeState. | |
| Return NULL on success, or return an error message on failure. */ | |
| PyAPI_FUNC(PyStatus) _PyRuntime_Initialize(void); | |
| PyAPI_FUNC(void) _PyRuntime_Finalize(void); | |
| static inline PyThreadState* | |
| _PyRuntimeState_GetFinalizing(_PyRuntimeState *runtime) { | |
| return (PyThreadState*)_Py_atomic_load_relaxed(&runtime->_finalizing); | |
| } | |
| static inline void | |
| _PyRuntimeState_SetFinalizing(_PyRuntimeState *runtime, PyThreadState *tstate) { | |
| _Py_atomic_store_relaxed(&runtime->_finalizing, (uintptr_t)tstate); | |
| } | |
| } | |