Bug #687642 - Crash under caldav_synch_slave_loop()
authorMilan Crha <mcrha@redhat.com>
Wed, 7 Nov 2012 12:08:51 +0000 (13:08 +0100)
committerMilan Crha <mcrha@redhat.com>
Wed, 7 Nov 2012 12:08:51 +0000 (13:08 +0100)
calendar/backends/caldav/e-cal-backend-caldav.c

index fdf7710..66602dd 100644 (file)
@@ -2434,11 +2434,11 @@ caldav_synch_slave_loop (gpointer data)
                g_cond_wait (&cbdav->priv->cond, &cbdav->priv->busy_lock);
        }
 
+       cbdav->priv->synch_slave = NULL;
+
        /* signal we are done */
        g_cond_signal (&cbdav->priv->slave_gone_cond);
 
-       cbdav->priv->synch_slave = NULL;
-
        /* we got killed ... */
        g_mutex_unlock (&cbdav->priv->busy_lock);
        return NULL;
@@ -4973,7 +4973,7 @@ e_cal_backend_caldav_dispose (GObject *object)
        }
 
        /* stop the slave  */
-       if (priv->synch_slave) {
+       while (priv->synch_slave) {
                g_cond_signal (&priv->cond);
 
                /* wait until the slave died */