> > Support new GCond/GMutex interface with former GLib. > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> > --- > server/glib-compat.h | 69 > ++++++++++++++++++++++++++++++++++++++++++++++ > server/gstreamer-encoder.c | 1 + > 2 files changed, 70 insertions(+) > > diff --git a/server/glib-compat.h b/server/glib-compat.h > index 8a27afe..d4ff550 100644 > --- a/server/glib-compat.h > +++ b/server/glib-compat.h > @@ -44,4 +44,73 @@ g_queue_remove_boolean(GQueue *queue, gconstpointer data) > #define g_queue_remove g_queue_remove_boolean > #endif > > +#if !GLIB_CHECK_VERSION(2,32,0) > +typedef struct { > + GMutex *mtx_compat; > +} GMutexCompat; > +#define GMutex GMutexCompat > + > +static inline void > +g_mutex_lock_compat(GMutexCompat *mtx) > +{ > + g_mutex_lock(mtx->mtx_compat); > +} > +#undef g_mutex_lock > +#define g_mutex_lock(mtx) g_mutex_lock_compat(mtx) > +static inline void > +g_mutex_unlock_compat(GMutexCompat *mtx) > +{ > + g_mutex_unlock(mtx->mtx_compat); > +} > +#undef g_mutex_unlock > +#define g_mutex_unlock(mtx) g_mutex_unlock_compat(mtx) > + > +typedef struct { > + GCond *cond_compat; > +} GCondCompat; > +#define GCond GCondCompat > + > +static inline void > +g_cond_signal_compat(GCondCompat *cond) > +{ > + g_cond_signal(cond->cond_compat); > +} > +#undef g_cond_signal > +#define g_cond_signal(cond) g_cond_signal_compat(cond) > + > +static inline void > +g_cond_wait_compat(GCondCompat *cond, GMutexCompat *mtx) > +{ > + g_cond_wait(cond->cond_compat, mtx->mtx_compat); > +} > +#undef g_cond_wait > +#define g_cond_wait(cond, mtx) g_cond_wait_compat(cond, mtx) > + > +static inline void > +g_mutex_init(GMutexCompat *mtx) > +{ > + mtx->mtx_compat = g_mutex_new(); > +} > + > +static inline void > +g_cond_init(GCondCompat *cond) > +{ > + cond->cond_compat = g_cond_new(); > +} > + > +static inline void > +g_mutex_clear(GMutexCompat *mtx) > +{ > + g_mutex_free(mtx->mtx_compat); > + mtx->mtx_compat = NULL; > +} > + > +static inline void > +g_cond_clear(GCondCompat *cond) > +{ > + g_cond_free(cond->cond_compat); > + cond->cond_compat = NULL; > +} > +#endif > + > #endif /* GLIB_COMPAT_H_ */ > diff --git a/server/gstreamer-encoder.c b/server/gstreamer-encoder.c > index 3d5f8a0..c419bb6 100644 > --- a/server/gstreamer-encoder.c > +++ b/server/gstreamer-encoder.c > @@ -29,6 +29,7 @@ > #include "red-common.h" > #include "video-encoder.h" > #include "utils.h" > +#include "glib-compat.h" > > > #define SPICE_GST_DEFAULT_FPS 30 I honestly would prefer to use pthread. Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel