PHP 8.2.30
Preview: pycore_pyatomic_ft_wrappers.h Size: 7.87 KB
//opt/alt/python313/include/python3.13/internal/pycore_pyatomic_ft_wrappers.h

// This header file provides wrappers around the atomic operations found in
// `pyatomic.h` that are only atomic in free-threaded builds.
//
// These are intended to be used in places where atomics are required in
// free-threaded builds, but not in the default build, and we don't want to
// introduce the potential performance overhead of an atomic operation in the
// default build.
//
// All usages of these macros should be replaced with unconditionally atomic or
// non-atomic versions, and this file should be removed, once the dust settles
// on free threading.
#ifndef Py_ATOMIC_FT_WRAPPERS_H
#define Py_ATOMIC_FT_WRAPPERS_H
#ifdef __cplusplus
extern "C" {
#endif

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

#ifdef Py_GIL_DISABLED
#define FT_ATOMIC_LOAD_PTR(value) _Py_atomic_load_ptr(&value)
#define FT_ATOMIC_STORE_PTR(value, new_value) _Py_atomic_store_ptr(&value, new_value)
#define FT_ATOMIC_LOAD_SSIZE(value) _Py_atomic_load_ssize(&value)
#define FT_ATOMIC_LOAD_SSIZE_ACQUIRE(value) \
    _Py_atomic_load_ssize_acquire(&value)
#define FT_ATOMIC_LOAD_SSIZE_RELAXED(value) \
    _Py_atomic_load_ssize_relaxed(&value)
#define FT_ATOMIC_STORE_PTR(value, new_value) \
    _Py_atomic_store_ptr(&value, new_value)
#define FT_ATOMIC_LOAD_PTR_ACQUIRE(value) \
    _Py_atomic_load_ptr_acquire(&value)
#define FT_ATOMIC_LOAD_UINTPTR_ACQUIRE(value) \
    _Py_atomic_load_uintptr_acquire(&value)
#define FT_ATOMIC_LOAD_PTR_RELAXED(value) \
    _Py_atomic_load_ptr_relaxed(&value)
#define FT_ATOMIC_LOAD_UINT8(value) \
    _Py_atomic_load_uint8(&value)
#define FT_ATOMIC_STORE_UINT8(value, new_value) \
    _Py_atomic_store_uint8(&value, new_value)
#define FT_ATOMIC_LOAD_UINT8_RELAXED(value) \
    _Py_atomic_load_uint8_relaxed(&value)
#define FT_ATOMIC_LOAD_UINT16_RELAXED(value) \
    _Py_atomic_load_uint16_relaxed(&value)
#define FT_ATOMIC_LOAD_UINT32_RELAXED(value) \
    _Py_atomic_load_uint32_relaxed(&value)
#define FT_ATOMIC_LOAD_ULONG_RELAXED(value) \
    _Py_atomic_load_ulong_relaxed(&value)
#define FT_ATOMIC_STORE_PTR_RELAXED(value, new_value) \
    _Py_atomic_store_ptr_relaxed(&value, new_value)
#define FT_ATOMIC_STORE_PTR_RELEASE(value, new_value) \
    _Py_atomic_store_ptr_release(&value, new_value)
#define FT_ATOMIC_STORE_UINTPTR_RELEASE(value, new_value) \
    _Py_atomic_store_uintptr_release(&value, new_value)
#define FT_ATOMIC_STORE_SSIZE_RELAXED(value, new_value) \
    _Py_atomic_store_ssize_relaxed(&value, new_value)
#define FT_ATOMIC_STORE_UINT8_RELAXED(value, new_value) \
    _Py_atomic_store_uint8_relaxed(&value, new_value)
#define FT_ATOMIC_STORE_UINT16_RELAXED(value, new_value) \
    _Py_atomic_store_uint16_relaxed(&value, new_value)
#define FT_ATOMIC_STORE_UINT32_RELAXED(value, new_value) \
    _Py_atomic_store_uint32_relaxed(&value, new_value)
#define FT_ATOMIC_STORE_CHAR_RELAXED(value, new_value) \
    _Py_atomic_store_char_relaxed(&value, new_value)
#define FT_ATOMIC_LOAD_CHAR_RELAXED(value) \
    _Py_atomic_load_char_relaxed(&value)
#define FT_ATOMIC_STORE_UCHAR_RELAXED(value, new_value) \
    _Py_atomic_store_uchar_relaxed(&value, new_value)
#define FT_ATOMIC_LOAD_UCHAR_RELAXED(value) \
    _Py_atomic_load_uchar_relaxed(&value)
#define FT_ATOMIC_STORE_SHORT_RELAXED(value, new_value) \
    _Py_atomic_store_short_relaxed(&value, new_value)
#define FT_ATOMIC_LOAD_SHORT_RELAXED(value) \
    _Py_atomic_load_short_relaxed(&value)
#define FT_ATOMIC_STORE_USHORT_RELAXED(value, new_value) \
    _Py_atomic_store_ushort_relaxed(&value, new_value)
#define FT_ATOMIC_LOAD_USHORT_RELAXED(value) \
    _Py_atomic_load_ushort_relaxed(&value)
#define FT_ATOMIC_STORE_INT_RELAXED(value, new_value) \
    _Py_atomic_store_int_relaxed(&value, new_value)
#define FT_ATOMIC_LOAD_INT_RELAXED(value) \
    _Py_atomic_load_int_relaxed(&value)
#define FT_ATOMIC_STORE_UINT_RELAXED(value, new_value) \
    _Py_atomic_store_uint_relaxed(&value, new_value)
#define FT_ATOMIC_LOAD_UINT_RELAXED(value) \
    _Py_atomic_load_uint_relaxed(&value)
#define FT_ATOMIC_STORE_LONG_RELAXED(value, new_value) \
    _Py_atomic_store_long_relaxed(&value, new_value)
#define FT_ATOMIC_LOAD_LONG_RELAXED(value) \
    _Py_atomic_load_long_relaxed(&value)
#define FT_ATOMIC_STORE_ULONG_RELAXED(value, new_value) \
    _Py_atomic_store_ulong_relaxed(&value, new_value)
#define FT_ATOMIC_STORE_SSIZE_RELAXED(value, new_value) \
    _Py_atomic_store_ssize_relaxed(&value, new_value)
#define FT_ATOMIC_STORE_FLOAT_RELAXED(value, new_value) \
    _Py_atomic_store_float_relaxed(&value, new_value)
#define FT_ATOMIC_LOAD_FLOAT_RELAXED(value) \
    _Py_atomic_load_float_relaxed(&value)
#define FT_ATOMIC_STORE_DOUBLE_RELAXED(value, new_value) \
    _Py_atomic_store_double_relaxed(&value, new_value)
#define FT_ATOMIC_LOAD_DOUBLE_RELAXED(value) \
    _Py_atomic_load_double_relaxed(&value)
#define FT_ATOMIC_STORE_LLONG_RELAXED(value, new_value) \
    _Py_atomic_store_llong_relaxed(&value, new_value)
#define FT_ATOMIC_LOAD_LLONG_RELAXED(value) \
    _Py_atomic_load_llong_relaxed(&value)
#define FT_ATOMIC_STORE_ULLONG_RELAXED(value, new_value) \
    _Py_atomic_store_ullong_relaxed(&value, new_value)
#define FT_ATOMIC_LOAD_ULLONG_RELAXED(value) \
    _Py_atomic_load_ullong_relaxed(&value)

#else
#define FT_ATOMIC_LOAD_PTR(value) value
#define FT_ATOMIC_STORE_PTR(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_SSIZE(value) value
#define FT_ATOMIC_LOAD_SSIZE_ACQUIRE(value) value
#define FT_ATOMIC_LOAD_SSIZE_RELAXED(value) value
#define FT_ATOMIC_LOAD_PTR_ACQUIRE(value) value
#define FT_ATOMIC_LOAD_UINTPTR_ACQUIRE(value) value
#define FT_ATOMIC_LOAD_PTR_RELAXED(value) value
#define FT_ATOMIC_LOAD_UINT8(value) value
#define FT_ATOMIC_STORE_UINT8(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_UINT8_RELAXED(value) value
#define FT_ATOMIC_LOAD_UINT16_RELAXED(value) value
#define FT_ATOMIC_LOAD_UINT32_RELAXED(value) value
#define FT_ATOMIC_LOAD_ULONG_RELAXED(value) value
#define FT_ATOMIC_STORE_PTR_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_STORE_PTR_RELEASE(value, new_value) value = new_value
#define FT_ATOMIC_STORE_UINTPTR_RELEASE(value, new_value) value = new_value
#define FT_ATOMIC_STORE_SSIZE_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_STORE_UINT8_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_STORE_UINT16_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_STORE_UINT32_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_CHAR_RELAXED(value) value
#define FT_ATOMIC_STORE_CHAR_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_UCHAR_RELAXED(value) value
#define FT_ATOMIC_STORE_UCHAR_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_SHORT_RELAXED(value) value
#define FT_ATOMIC_STORE_SHORT_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_USHORT_RELAXED(value) value
#define FT_ATOMIC_STORE_USHORT_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_INT_RELAXED(value) value
#define FT_ATOMIC_STORE_INT_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_UINT_RELAXED(value) value
#define FT_ATOMIC_STORE_UINT_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_LONG_RELAXED(value) value
#define FT_ATOMIC_STORE_LONG_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_STORE_ULONG_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_STORE_SSIZE_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_FLOAT_RELAXED(value) value
#define FT_ATOMIC_STORE_FLOAT_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_DOUBLE_RELAXED(value) value
#define FT_ATOMIC_STORE_DOUBLE_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_LLONG_RELAXED(value) value
#define FT_ATOMIC_STORE_LLONG_RELAXED(value, new_value) value = new_value
#define FT_ATOMIC_LOAD_ULLONG_RELAXED(value) value
#define FT_ATOMIC_STORE_ULLONG_RELAXED(value, new_value) value = new_value

#endif

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

Directory Contents

Dirs: 1 × Files: 122

Name Size Perms Modified Actions
mimalloc DIR
- drwxr-xr-x 2026-02-10 08:09:23
Edit Download
1.87 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.96 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
30.78 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
6.62 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.40 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.81 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
5.88 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
8.57 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.05 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
4.98 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.84 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
5.99 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
397 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.03 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
11.10 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.83 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
19.71 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.41 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.66 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
588 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.64 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.15 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
7.78 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
11.84 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
543 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
11.98 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
732 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.69 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
685 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.11 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
900 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.19 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
9.25 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.65 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.46 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.45 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
480 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
12.08 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
4.70 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.50 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
12.66 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
859 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
490 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.14 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.02 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
115.04 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
26.08 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.65 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
4.26 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
515 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
7.55 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.96 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
6.23 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.11 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.28 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
14.72 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.71 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
527 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.82 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.36 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
8.34 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
9.73 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
427 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.60 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.27 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.54 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
435 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
27.28 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.13 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.33 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
942 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
26.78 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.89 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
82.88 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.07 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
8.11 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.27 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.04 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
658 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.79 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
7.87 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
510 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
4.84 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.75 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
4.36 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
8.40 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
5.24 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.44 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
9.73 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
420 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
758 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
5.95 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
5.39 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
346 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
12.86 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
12.74 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
45.72 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.69 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
951 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.86 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
369 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
5.06 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1013 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
963 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
8.47 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.15 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
11.52 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
2.93 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.54 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
4.43 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
1.32 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
820 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
8.67 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
924 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
958 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
12.96 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
129.04 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
742 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
10.06 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
38.72 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download
840 B lrw-r--r-- 2025-12-05 16:06:33
Edit Download
3.80 KB lrw-r--r-- 2025-12-05 16:06:33
Edit Download

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