evolution-data-server r10115 - trunk/camel/providers/local



Author: sragavan
Date: Sun Mar  1 11:33:27 2009
New Revision: 10115
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=10115&view=rev

Log:
2009-03-01  Srinivasa Ragavan  <sragavan novell com>

	* camel/providers/local/camel-local-folder.c: Fix for a deadlock,
	while recovering from folder-summary mismatch.

Modified:
   trunk/camel/providers/local/ChangeLog
   trunk/camel/providers/local/camel-local-folder.c

Modified: trunk/camel/providers/local/camel-local-folder.c
==============================================================================
--- trunk/camel/providers/local/camel-local-folder.c	(original)
+++ trunk/camel/providers/local/camel-local-folder.c	Sun Mar  1 11:33:27 2009
@@ -488,14 +488,16 @@
 
 	CAMEL_FOLDER_REC_LOCK(folder, lock);
 
-	if (camel_local_summary_check((CamelLocalSummary *)folder->summary, lf->changes, ex) == -1)
+	if (camel_local_summary_check((CamelLocalSummary *)folder->summary, lf->changes, ex) == -1) {
+		CAMEL_FOLDER_REC_UNLOCK(folder, lock);
 		return;
+	}
 
+	CAMEL_FOLDER_REC_UNLOCK(folder, lock);
 	if (camel_folder_change_info_changed(lf->changes)) {
 		camel_object_trigger_event((CamelObject *)folder, "folder_changed", lf->changes);
 		camel_folder_change_info_clear(lf->changes);
 	}
-	CAMEL_FOLDER_REC_UNLOCK(folder, lock);
 	
 }
 



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