From c272a7b2a2a9817b3b4f67fafcefeb2b241b7eb0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ole=20Andr=C3=A9=20Vadla=20Ravn=C3=A5s?= Date: Thu, 18 Jun 2009 23:53:46 +0200 Subject: [PATCH] [master clock] Fix MT safety issues Fix MT issues when enabling threading in Clutter. Fixes bug: http://bugzilla.openedhand.com/show_bug.cgi?id=1655 Signed-off-by: Emmanuele Bassi --- clutter/clutter-master-clock.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/clutter/clutter-master-clock.c b/clutter/clutter-master-clock.c index 2d3c87f..1836fa0 100644 --- a/clutter/clutter-master-clock.c +++ b/clutter/clutter-master-clock.c @@ -212,7 +212,9 @@ clutter_clock_prepare (GSource *source, ClutterMasterClock *master_clock = clock_source->master_clock; int delay; + clutter_threads_enter (); delay = master_clock_next_frame_delay (master_clock); + clutter_threads_leave (); *timeout = delay; @@ -226,7 +228,9 @@ clutter_clock_check (GSource *source) ClutterMasterClock *master_clock = clock_source->master_clock; int delay; + clutter_threads_enter (); delay = master_clock_next_frame_delay (master_clock); + clutter_threads_leave (); return delay == 0; } @@ -243,6 +247,8 @@ clutter_clock_dispatch (GSource *source, CLUTTER_NOTE (SCHEDULER, "Master clock [tick]"); + clutter_threads_enter (); + /* Get the time to use for this frame. */ g_source_get_current_time (source, &master_clock->cur_tick); @@ -274,6 +280,8 @@ clutter_clock_dispatch (GSource *source, master_clock->prev_tick = master_clock->cur_tick; + clutter_threads_leave (); + return TRUE; } -- 2.7.4