Index: swig/Lib/python/pythreads.swg |
=================================================================== |
--- swig/Lib/python/pythreads.swg (revision 0) |
+++ swig/Lib/python/pythreads.swg (revision 0) |
@@ -0,0 +1,66 @@ |
+#if defined(SWIG_PYTHON_NO_THREADS) |
+# if defined(SWIG_PYTHON_THREADS) |
+# undef SWIG_PYTHON_THREADS |
+# endif |
+#endif |
+#if defined(SWIG_PYTHON_THREADS) /* Threading support is enabled */ |
+# if !defined(SWIG_PYTHON_USE_GIL) && !defined(SWIG_PYTHON_NO_USE_GIL) |
+# if (PY_VERSION_HEX >= 0x02030000) /* For 2.3 or later, use the PyGILState calls */ |
+# define SWIG_PYTHON_USE_GIL |
+# endif |
+# endif |
+# if defined(SWIG_PYTHON_USE_GIL) /* Use PyGILState threads calls */ |
+# ifndef SWIG_PYTHON_INITIALIZE_THREADS |
+# define SWIG_PYTHON_INITIALIZE_THREADS PyEval_InitThreads() |
+# endif |
+# ifdef __cplusplus /* C++ code */ |
+ class SWIG_Python_Thread_Block { |
+ bool status; |
+ PyGILState_STATE state; |
+ public: |
+ void end() { if (status) { PyGILState_Release(state); status = false;} } |
+ SWIG_Python_Thread_Block() : status(true), state(PyGILState_Ensure()) {} |
+ ~SWIG_Python_Thread_Block() { end(); } |
+ }; |
+ class SWIG_Python_Thread_Allow { |
+ bool status; |
+ PyThreadState *save; |
+ public: |
+ void end() { if (status) { PyEval_RestoreThread(save); status = false; }} |
+ SWIG_Python_Thread_Allow() : status(true), save(PyEval_SaveThread()) {} |
+ ~SWIG_Python_Thread_Allow() { end(); } |
+ }; |
+# define SWIG_PYTHON_THREAD_BEGIN_BLOCK SWIG_Python_Thread_Block _swig_thread_block |
+# define SWIG_PYTHON_THREAD_END_BLOCK _swig_thread_block.end() |
+# define SWIG_PYTHON_THREAD_BEGIN_ALLOW SWIG_Python_Thread_Allow _swig_thread_allow |
+# define SWIG_PYTHON_THREAD_END_ALLOW _swig_thread_allow.end() |
+# else /* C code */ |
+# define SWIG_PYTHON_THREAD_BEGIN_BLOCK PyGILState_STATE _swig_thread_block = PyGILState_Ensure() |
+# define SWIG_PYTHON_THREAD_END_BLOCK PyGILState_Release(_swig_thread_block) |
+# define SWIG_PYTHON_THREAD_BEGIN_ALLOW PyThreadState *_swig_thread_allow = PyEval_SaveThread() |
+# define SWIG_PYTHON_THREAD_END_ALLOW PyEval_RestoreThread(_swig_thread_allow) |
+# endif |
+# else /* Old thread way, not implemented, user must provide it */ |
+# if !defined(SWIG_PYTHON_INITIALIZE_THREADS) |
+# define SWIG_PYTHON_INITIALIZE_THREADS |
+# endif |
+# if !defined(SWIG_PYTHON_THREAD_BEGIN_BLOCK) |
+# define SWIG_PYTHON_THREAD_BEGIN_BLOCK |
+# endif |
+# if !defined(SWIG_PYTHON_THREAD_END_BLOCK) |
+# define SWIG_PYTHON_THREAD_END_BLOCK |
+# endif |
+# if !defined(SWIG_PYTHON_THREAD_BEGIN_ALLOW) |
+# define SWIG_PYTHON_THREAD_BEGIN_ALLOW |
+# endif |
+# if !defined(SWIG_PYTHON_THREAD_END_ALLOW) |
+# define SWIG_PYTHON_THREAD_END_ALLOW |
+# endif |
+# endif |
+#else /* No thread support */ |
+# define SWIG_PYTHON_INITIALIZE_THREADS |
+# define SWIG_PYTHON_THREAD_BEGIN_BLOCK |
+# define SWIG_PYTHON_THREAD_END_BLOCK |
+# define SWIG_PYTHON_THREAD_BEGIN_ALLOW |
+# define SWIG_PYTHON_THREAD_END_ALLOW |
+#endif |