[evolution-data-server/gnome-3-16] Bug 750416 - Crash under e_client_wait_for_connected_sync()
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server/gnome-3-16] Bug 750416 - Crash under e_client_wait_for_connected_sync()
- Date: Thu, 4 Jun 2015 20:10:52 +0000 (UTC)
commit 84d784e8c415e03c518cdf0251ddd2d61ae8f506
Author: Milan Crha <mcrha redhat com>
Date: Thu Jun 4 22:08:18 2015 +0200
Bug 750416 - Crash under e_client_wait_for_connected_sync()
libedataserver/e-client.c | 4 ++--
libedataserver/e-flag.c | 3 +++
2 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/libedataserver/e-client.c b/libedataserver/e-client.c
index e939452..0396653 100644
--- a/libedataserver/e-client.c
+++ b/libedataserver/e-client.c
@@ -2007,11 +2007,11 @@ e_client_wait_for_connected_sync (EClient *client,
}
}
+ g_signal_handler_disconnect (source, notify_handler_id);
+
if (cancellable_handler_id > 0 && cancellable)
g_cancellable_disconnect (cancellable, cancellable_handler_id);
- g_signal_handler_disconnect (source, notify_handler_id);
- e_flag_set (flag);
e_flag_free (flag);
success = e_source_get_connection_status (source) == E_SOURCE_CONNECTION_STATUS_CONNECTED;
diff --git a/libedataserver/e-flag.c b/libedataserver/e-flag.c
index 2be339c..28882a7 100644
--- a/libedataserver/e-flag.c
+++ b/libedataserver/e-flag.c
@@ -225,7 +225,10 @@ e_flag_free (EFlag *flag)
{
g_return_if_fail (flag != NULL);
+ /* Just to make sure that other threads are not holding the lock. */
+ g_mutex_lock (&flag->mutex);
g_cond_clear (&flag->cond);
+ g_mutex_unlock (&flag->mutex);
g_mutex_clear (&flag->mutex);
g_slice_free (EFlag, flag);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]