[evolution-data-server/gnome-3-4] Use locks in factory's weak object notify callback on data-book/cal



commit 057cc27efec4f7e719ee8e1cc1e20481548bd8ff
Author: Milan Crha <mcrha redhat com>
Date:   Thu May 17 14:37:46 2012 +0200

    Use locks in factory's weak object notify callback on data-book/cal

 addressbook/libedata-book/e-data-book-factory.c |    6 ++++++
 calendar/libedata-cal/e-data-cal-factory.c      |    6 ++++++
 2 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/addressbook/libedata-book/e-data-book-factory.c b/addressbook/libedata-book/e-data-book-factory.c
index 96ee3c8..32d2cae 100644
--- a/addressbook/libedata-book/e-data-book-factory.c
+++ b/addressbook/libedata-book/e-data-book-factory.c
@@ -134,6 +134,9 @@ book_freed_cb (EDataBookFactory *factory,
 
 	d (g_debug ("in factory %p (%p) is dead", factory, dead));
 
+	g_mutex_lock (priv->books_lock);
+	g_mutex_lock (priv->connections_lock);
+
 	g_hash_table_foreach_remove (
 		priv->books, remove_dead_pointer_cb, dead);
 
@@ -154,6 +157,9 @@ book_freed_cb (EDataBookFactory *factory,
 		}
 	}
 
+	g_mutex_unlock (priv->connections_lock);
+	g_mutex_unlock (priv->books_lock);
+
 	e_dbus_server_release (E_DBUS_SERVER (factory));
 }
 
diff --git a/calendar/libedata-cal/e-data-cal-factory.c b/calendar/libedata-cal/e-data-cal-factory.c
index 484c97c..6422766 100644
--- a/calendar/libedata-cal/e-data-cal-factory.c
+++ b/calendar/libedata-cal/e-data-cal-factory.c
@@ -149,6 +149,9 @@ calendar_freed_cb (EDataCalFactory *factory,
 
 	d (g_debug ("in factory %p (%p) is dead", factory, dead));
 
+	g_mutex_lock (priv->calendars_lock);
+	g_mutex_lock (priv->connections_lock);
+
 	g_hash_table_foreach_remove (
 		priv->calendars, remove_dead_calendar_cb, dead);
 
@@ -169,6 +172,9 @@ calendar_freed_cb (EDataCalFactory *factory,
 		}
 	}
 
+	g_mutex_unlock (priv->connections_lock);
+	g_mutex_unlock (priv->calendars_lock);
+
 	e_dbus_server_release (E_DBUS_SERVER (factory));
 }
 



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