X7ROOT File Manager
Current Path:
/opt/alt/python313/include/python3.13/cpython
opt
/
alt
/
python313
/
include
/
python3.13
/
cpython
/
ðŸ“
..
📄
abstract.h
(3.32 KB)
📄
bytearrayobject.h
(1.14 KB)
📄
bytesobject.h
(1.15 KB)
📄
cellobject.h
(1.05 KB)
📄
ceval.h
(1.09 KB)
📄
classobject.h
(2.19 KB)
📄
code.h
(14.85 KB)
📄
compile.h
(2.07 KB)
📄
complexobject.h
(909 B)
📄
context.h
(1.79 KB)
📄
critical_section.h
(5.46 KB)
📄
descrobject.h
(1.56 KB)
📄
dictobject.h
(3.78 KB)
📄
fileobject.h
(652 B)
📄
fileutils.h
(232 B)
📄
floatobject.h
(900 B)
📄
frameobject.h
(1.17 KB)
📄
funcobject.h
(6.88 KB)
📄
genobject.h
(2.93 KB)
📄
import.h
(725 B)
📄
initconfig.h
(8 KB)
📄
listobject.h
(1.76 KB)
📄
lock.h
(1.72 KB)
📄
longintrepr.h
(5 KB)
📄
longobject.h
(5.45 KB)
📄
memoryobject.h
(2.17 KB)
📄
methodobject.h
(2.22 KB)
📄
modsupport.h
(1.02 KB)
📄
monitoring.h
(7.52 KB)
📄
object.h
(18.63 KB)
📄
objimpl.h
(3.73 KB)
📄
odictobject.h
(1.28 KB)
📄
picklebufobject.h
(848 B)
📄
pthread_stubs.h
(3.83 KB)
📄
pyatomic.h
(16.12 KB)
📄
pyatomic_gcc.h
(18.68 KB)
📄
pyatomic_msc.h
(28.56 KB)
📄
pyatomic_std.h
(23.77 KB)
📄
pyctype.h
(1.35 KB)
📄
pydebug.h
(1.38 KB)
📄
pyerrors.h
(2.84 KB)
📄
pyfpe.h
(444 B)
📄
pyframe.h
(1.9 KB)
📄
pyhash.h
(1.35 KB)
📄
pylifecycle.h
(2.75 KB)
📄
pymem.h
(2.78 KB)
📄
pystate.h
(9.24 KB)
📄
pystats.h
(5.31 KB)
📄
pythonrun.h
(4.23 KB)
📄
pythread.h
(1.47 KB)
📄
pytime.h
(707 B)
📄
setobject.h
(2 KB)
📄
sysmodule.h
(775 B)
📄
traceback.h
(282 B)
📄
tracemalloc.h
(823 B)
📄
tupleobject.h
(1.3 KB)
📄
unicodeobject.h
(24.49 KB)
📄
warnings.h
(564 B)
📄
weakrefobject.h
(2.2 KB)
Editing: lock.h
#ifndef Py_CPYTHON_LOCK_H # error "this header file must not be included directly" #endif #define _Py_UNLOCKED 0 #define _Py_LOCKED 1 // A mutex that occupies one byte. The lock can be zero initialized to // represent the unlocked state. // // Typical initialization: // PyMutex m = (PyMutex){0}; // // Or initialize as global variables: // static PyMutex m; // // Typical usage: // PyMutex_Lock(&m); // ... // PyMutex_Unlock(&m); // // The contents of the PyMutex are not part of the public API, but are // described to aid in understanding the implementation and debugging. Only // the two least significant bits are used. The remaining bits are always zero: // 0b00: unlocked // 0b01: locked // 0b10: unlocked and has parked threads // 0b11: locked and has parked threads typedef struct PyMutex { uint8_t _bits; // (private) } PyMutex; // exported function for locking the mutex PyAPI_FUNC(void) PyMutex_Lock(PyMutex *m); // exported function for unlocking the mutex PyAPI_FUNC(void) PyMutex_Unlock(PyMutex *m); // Locks the mutex. // // If the mutex is currently locked, the calling thread will be parked until // the mutex is unlocked. If the current thread holds the GIL, then the GIL // will be released while the thread is parked. static inline void _PyMutex_Lock(PyMutex *m) { uint8_t expected = _Py_UNLOCKED; if (!_Py_atomic_compare_exchange_uint8(&m->_bits, &expected, _Py_LOCKED)) { PyMutex_Lock(m); } } #define PyMutex_Lock _PyMutex_Lock // Unlocks the mutex. static inline void _PyMutex_Unlock(PyMutex *m) { uint8_t expected = _Py_LOCKED; if (!_Py_atomic_compare_exchange_uint8(&m->_bits, &expected, _Py_UNLOCKED)) { PyMutex_Unlock(m); } } #define PyMutex_Unlock _PyMutex_Unlock
Upload File
Create Folder