diff options
| author | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2005-01-09 17:35:01 +0000 |
|---|---|---|
| committer | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2005-01-09 17:35:01 +0000 |
| commit | cdbddaa4d040be8b71d0e3b4790da4aaf6b87ab6 (patch) | |
| tree | 1d604c60dd3df41d5807b5d29fb92949696d3e03 /gobject/pygobject-private.h | |
| parent | d953b545f6fa8f0e24b265044bc52ab5896702eb (diff) | |
| download | pygobject-cdbddaa4d040be8b71d0e3b4790da4aaf6b87ab6.tar.gz pygobject-cdbddaa4d040be8b71d0e3b4790da4aaf6b87ab6.tar.xz pygobject-cdbddaa4d040be8b71d0e3b4790da4aaf6b87ab6.zip | |
misc API additions, threading
Diffstat (limited to 'gobject/pygobject-private.h')
| -rw-r--r-- | gobject/pygobject-private.h | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/gobject/pygobject-private.h b/gobject/pygobject-private.h index d826f92..a9d8bd9 100644 --- a/gobject/pygobject-private.h +++ b/gobject/pygobject-private.h @@ -19,24 +19,20 @@ extern struct _PyGObject_Functions pygobject_api_functions; (* pygobject_api_functions.unblock_threads)(); \ } G_STMT_END -#define pyg_threads_enabled (pygobject_api_functions.threads_enabled) - +#if PY_VERSION_HEX < 0x020400F0 +# define pyg_threads_enabled (pygobject_api_functions.threads_enabled) +#else +# define pyg_threads_enabled (PyEval_ThreadsInitialized()) +#endif -#define pyg_gil_state_ensure() (pygobject_api_functions.threads_enabled? (pygobject_api_functions.gil_state_ensure()) : 0) -#define pyg_gil_state_release(state) G_STMT_START { \ - if (pygobject_api_functions.threads_enabled) \ +#define pyg_gil_state_ensure() (pyg_threads_enabled? (pygobject_api_functions.gil_state_ensure()) : 0) +#define pyg_gil_state_release(state) G_STMT_START { \ + if (pyg_threads_enabled) \ pygobject_api_functions.gil_state_release(state); \ } G_STMT_END -#define pyg_begin_allow_threads \ - G_STMT_START { \ - PyThreadState *_save = NULL; \ - if (pygobject_api_functions.threads_enabled) \ - _save = PyEval_SaveThread(); -#define pyg_end_allow_threads \ - if (pygobject_api_functions.threads_enabled) \ - PyEval_RestoreThread(_save); \ - } G_STMT_END +#define pyg_begin_allow_threads Py_BEGIN_ALLOW_THREADS +#define pyg_end_allow_threads Py_END_ALLOW_THREADS extern GType PY_TYPE_OBJECT; |
