From f423c3f6b52212e4f99c64fa27c4d2be88c85f2a Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Wed, 7 Nov 2012 13:08:51 +0100 Subject: [PATCH] Bug #687642 - Crash under caldav_synch_slave_loop() --- calendar/backends/caldav/e-cal-backend-caldav.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/calendar/backends/caldav/e-cal-backend-caldav.c b/calendar/backends/caldav/e-cal-backend-caldav.c index fdf7710..66602dd 100644 --- a/calendar/backends/caldav/e-cal-backend-caldav.c +++ b/calendar/backends/caldav/e-cal-backend-caldav.c @@ -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 */ -- 2.7.4