empathy r2556 - trunk/src



Author: xclaesse
Date: Tue Mar  3 17:34:25 2009
New Revision: 2556
URL: http://svn.gnome.org/viewvc/empathy?rev=2556&view=rev

Log:
Put locks around timer_id

Signed-off-by: Sjoerd Simons <sjoerd simons collabora co uk>

Modified:
   trunk/src/empathy-call-window.c

Modified: trunk/src/empathy-call-window.c
==============================================================================
--- trunk/src/empathy-call-window.c	(original)
+++ trunk/src/empathy-call-window.c	Tue Mar  3 17:34:25 2009
@@ -567,9 +567,16 @@
   EmpathyCallWindow *self = EMPATHY_CALL_WINDOW (user_data);
   EmpathyCallWindowPriv *priv = GET_PRIV (self);
 
+  g_mutex_lock (priv->lock);
+
   g_timer_stop (priv->timer);
-  g_source_remove (priv->timer_id);
+
+  if (priv->timer_id != 0)
+    g_source_remove (priv->timer_id);
   priv->timer_id = 0;
+
+  g_mutex_unlock (priv->lock);
+
   empathy_call_window_status_message (self, _("Disconnected"));
 
   gtk_widget_set_sensitive (priv->camera_button, FALSE);
@@ -663,11 +670,14 @@
 
   g_object_unref (call);
 
+  g_mutex_lock (priv->lock);
+
   priv->timer_id = g_timeout_add_seconds (1,
     empathy_call_window_update_timer, self);
 
+  g_mutex_unlock (priv->lock);
+
   empathy_call_window_update_timer (self);
-  gdk_threads_leave ();
 
   return FALSE;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]