summaryrefslogtreecommitdiffstats
path: root/contrib/tools/swig/Lib/python/director_py_mutex.swg
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-08-28 14:27:58 +0300
committerrobot-piglet <[email protected]>2025-08-28 14:57:06 +0300
commit81d828c32c8d5477cb2f0ce5da06a1a8d9392ca3 (patch)
tree3081d566f0d5158d76e9093261344f6406fd09f7 /contrib/tools/swig/Lib/python/director_py_mutex.swg
parent77ea11423f959e51795cc3ef36a48d808b4ffb98 (diff)
Intermediate changes
commit_hash:d5b1af16dbe9030537a04c27eb410c88c2f496cd
Diffstat (limited to 'contrib/tools/swig/Lib/python/director_py_mutex.swg')
-rw-r--r--contrib/tools/swig/Lib/python/director_py_mutex.swg24
1 files changed, 24 insertions, 0 deletions
diff --git a/contrib/tools/swig/Lib/python/director_py_mutex.swg b/contrib/tools/swig/Lib/python/director_py_mutex.swg
new file mode 100644
index 00000000000..5bb0f83f26b
--- /dev/null
+++ b/contrib/tools/swig/Lib/python/director_py_mutex.swg
@@ -0,0 +1,24 @@
+/* -----------------------------------------------------------------------------
+ * director_py_mutex.swg
+ *
+ * contains python mutex for threads
+ * ----------------------------------------------------------------------------- */
+
+#if defined(SWIG_PYTHON_THREADS) && !defined(SWIG_THREADS)
+#define SWIG_THREADS 1
+#endif
+#if defined(SWIG_THREADS) && !defined(Py_LIMITED_API)
+#include "pythread.h"
+#define SWIG_HAVE_MUTEX
+namespace Swig {
+ class Mutex
+ {
+ PyThread_type_lock mutex_;
+ public:
+ Mutex() : mutex_(PyThread_allocate_lock()) {}
+ ~Mutex() { PyThread_free_lock(mutex_); }
+ void lock() { PyThread_acquire_lock(mutex_, WAIT_LOCK); }
+ void unlock() { PyThread_release_lock(mutex_); }
+ };
+}
+#endif