[evolution-patches] fix for the bug #322951 [calendar]



Hi,
  Have attached the fix for the bug. I could not reproduce the scenario
mentioned in the report. It could be a threading issue, have put a mutex
lock to avoid the reinitialization of the type value.

thanks, Chenthill.
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/ChangeLog,v
retrieving revision 1.552
diff -u -p -u -p -r1.552 ChangeLog
--- ChangeLog	17 Jan 2006 08:36:44 -0000	1.552
+++ ChangeLog	17 Jan 2006 13:33:35 -0000
@@ -1,3 +1,10 @@
+2006-01-17  Chenthill Palanisamy  <pchenthill novell com>
+
+	Fixes #322951
+	* libedata-cal/e-cal-backend-cache.c:
+	(e_cal_backend_cache_get_type): Put a mutex lock
+	so that the Type value does not get reset.
+
 2006-01-17  Harish Krishnaswamy  <kharish novell com>
 
 	* backends/caldav/Makefile.am: make distcheck
Index: libedata-cal/e-cal-backend-cache.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/calendar/libedata-cal/e-cal-backend-cache.c,v
retrieving revision 1.26
diff -u -p -u -p -r1.26 e-cal-backend-cache.c
--- libedata-cal/e-cal-backend-cache.c	31 Aug 2005 04:21:54 -0000	1.26
+++ libedata-cal/e-cal-backend-cache.c	17 Jan 2006 13:33:35 -0000
@@ -221,7 +221,9 @@ GType
 e_cal_backend_cache_get_type (void)
 {
 	static GType type = 0;
+	static GStaticMutex registering = G_STATIC_MUTEX_INIT;	
 
+	g_static_mutex_lock (&registering);
 	if (!type) {
 		static GTypeInfo info = {
                         sizeof (ECalBackendCacheClass),
@@ -235,6 +237,7 @@ e_cal_backend_cache_get_type (void)
                 };
 		type = g_type_register_static (E_TYPE_FILE_CACHE, "ECalBackendCache", &info, 0);
 	}
+	g_static_mutex_unlock (&registering);
 
 	return type;
 }


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