PHP 8.2.30
Preview: pycore_gil.h Size: 1.53 KB
//opt/alt/python39/include/python3.9/internal/pycore_gil.h

#ifndef Py_INTERNAL_GIL_H
#define Py_INTERNAL_GIL_H
#ifdef __cplusplus
extern "C" {
#endif

#ifndef Py_BUILD_CORE
#  error "this header requires Py_BUILD_CORE define"
#endif

#include "pycore_atomic.h"    /* _Py_atomic_address */
#include "pycore_condvar.h"   /* PyCOND_T */

#ifndef Py_HAVE_CONDVAR
#  error You need either a POSIX-compatible or a Windows system!
#endif

/* Enable if you want to force the switching of threads at least
   every `interval`. */
#undef FORCE_SWITCHING
#define FORCE_SWITCHING

struct _gil_runtime_state {
    /* microseconds (the Python API uses seconds, though) */
    unsigned long interval;
    /* Last PyThreadState holding / having held the GIL. This helps us
       know whether anyone else was scheduled after we dropped the GIL. */
    _Py_atomic_address last_holder;
    /* Whether the GIL is already taken (-1 if uninitialized). This is
       atomic because it can be read without any lock taken in ceval.c. */
    _Py_atomic_int locked;
    /* Number of GIL switches since the beginning. */
    unsigned long switch_number;
    /* This condition variable allows one or several threads to wait
       until the GIL is released. In addition, the mutex also protects
       the above variables. */
    PyCOND_T cond;
    PyMUTEX_T mutex;
#ifdef FORCE_SWITCHING
    /* This condition variable helps the GIL-releasing thread wait for
       a GIL-awaiting thread to be scheduled and take the GIL. */
    PyCOND_T switch_cond;
    PyMUTEX_T switch_mutex;
#endif
};

#ifdef __cplusplus
}
#endif
#endif /* !Py_INTERNAL_GIL_H */

Directory Contents

Dirs: 0 × Files: 34

Name Size Perms Modified Actions
953 B lrw-r--r-- 2025-06-03 18:47:52
Edit Download
479 B lrw-r--r-- 2025-06-03 18:47:52
Edit Download
1.10 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
16.58 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
2.56 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
3.30 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
870 B lrw-r--r-- 2025-06-03 18:47:52
Edit Download
3.32 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
541 B lrw-r--r-- 2025-06-03 18:47:52
Edit Download
2.74 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
800 B lrw-r--r-- 2025-06-03 18:47:52
Edit Download
646 B lrw-r--r-- 2025-06-03 18:47:52
Edit Download
1.50 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
6.49 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
490 B lrw-r--r-- 2025-06-03 18:47:52
Edit Download
1.53 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
3.61 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
4.10 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
473 B lrw-r--r-- 2025-06-03 18:47:52
Edit Download
5.11 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
5.17 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
1.51 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
4.06 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
1.89 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
1.98 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
206 B lrw-r--r-- 2025-06-03 18:47:52
Edit Download
3.65 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
3.28 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
3.50 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
4.35 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
548 B lrw-r--r-- 2025-06-03 18:47:52
Edit Download
2.98 KB lrw-r--r-- 2025-06-03 18:47:52
Edit Download
442 B lrw-r--r-- 2025-06-03 18:47:52
Edit Download
633 B lrw-r--r-- 2025-06-03 18:47:52
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).