File do-not-abort-with-python313.patch of Package python-backports.zstd
From 1abb8e37de02c6d4398f2b2a13f5c8469a169306 Mon Sep 17 00:00:00 2001
From: Rogdham <contact@rogdham.net>
Date: Sun, 19 Oct 2025 09:06:31 +0200
Subject: [PATCH] fix: assertions on 3.13
---
CHANGELOG.md | 6 ++++++
src/c/compat/backports_zstd_edits.h | 8 +++++---
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/c/compat/backports_zstd_edits.h b/src/c/compat/backports_zstd_edits.h
index 1e4b9f7..4cf076c 100644
--- a/src/c/compat/backports_zstd_edits.h
+++ b/src/c/compat/backports_zstd_edits.h
@@ -107,12 +107,14 @@ static inline int BACKPORTSZSTD_LOCK_isLocked(PyThread_type_lock *mp)
#define BACKPORTSZSTD_LOCK_lock PyMutex_Lock
#define BACKPORTSZSTD_LOCK_unlock PyMutex_Unlock
#define BACKPORTSZSTD_LOCK_free(l)
+#if PY_VERSION_HEX < 0x030E0000 // Python 3.13 and below
static inline int BACKPORTSZSTD_LOCK_isLocked(PyMutex *lp)
{
- // note: this function is only used in asserts
- // PyMutex_IsLocked is not exposed publicly https://github.com/python/cpython/issues/134009
- Py_FatalError("Not implemented");
+ return (_Py_atomic_load_uint8(&lp->_bits) & _Py_LOCKED) != 0;
}
+#else // Python 3.14 and above
+#define BACKPORTSZSTD_LOCK_isLocked PyMutex_IsLocked
+#endif
#endif /* !BACKPORTSZSTD_LOCK */