From 32b8217027a1bafa2b9ff1780253b2f849d708ea Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Fri, 7 Oct 2011 15:08:27 +0100 Subject: [PATCH] Use a static mutex for the default Clutter lock MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The Big Clutter Lock™ can now be a static GMutex, since GLib supports them. We can also drop a bunch of checks given the recent changes in GLib threading API. --- clutter/clutter-main.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/clutter/clutter-main.c b/clutter/clutter-main.c index 461c87d..9fe9acd 100644 --- a/clutter/clutter-main.c +++ b/clutter/clutter-main.c @@ -119,7 +119,7 @@ static ClutterMainContext *ClutterCntx = NULL; G_LOCK_DEFINE_STATIC (ClutterCntx); /* main lock and locking/unlocking functions */ -static GMutex *clutter_threads_mutex = NULL; +static GMutex clutter_threads_mutex; static GCallback clutter_threads_lock = NULL; static GCallback clutter_threads_unlock = NULL; @@ -694,15 +694,13 @@ clutter_main (void) static void clutter_threads_impl_lock (void) { - if (G_LIKELY (clutter_threads_mutex != NULL)) - g_mutex_lock (clutter_threads_mutex); + g_mutex_lock (&clutter_threads_mutex); } static void clutter_threads_impl_unlock (void) { - if (G_LIKELY (clutter_threads_mutex != NULL)) - g_mutex_unlock (clutter_threads_mutex); + g_mutex_unlock (&clutter_threads_mutex); } /** @@ -723,18 +721,10 @@ clutter_threads_impl_unlock (void) void clutter_threads_init (void) { - if (!g_thread_supported ()) - g_error ("g_thread_init() must be called before clutter_threads_init()"); - - if (clutter_threads_mutex != NULL) - return; - - clutter_threads_mutex = g_mutex_new (); - - if (!clutter_threads_lock) + if (clutter_threads_lock == NULL) clutter_threads_lock = clutter_threads_impl_lock; - if (!clutter_threads_unlock) + if (clutter_threads_unlock == NULL) clutter_threads_unlock = clutter_threads_impl_unlock; } -- 2.7.4