Fix for a deadlock, while recovering from folder-summary mismatch.
authorSrinivasa Ragavan <sragavan@novell.com>
Sun, 1 Mar 2009 11:33:27 +0000 (11:33 +0000)
committerSrinivasa Ragavan <sragavan@src.gnome.org>
Sun, 1 Mar 2009 11:33:27 +0000 (11:33 +0000)
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.

svn path=/trunk/; revision=10115

camel/providers/local/ChangeLog
camel/providers/local/camel-local-folder.c

index 4052bb3..fa77356 100644 (file)
@@ -1,3 +1,8 @@
+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.
+
 2009-02-27  Tobias Mueller <tobiasmue@svn.gnome.org>
 
        ** Fixes bug 573183
index cb1694e..a1ba108 100644 (file)
@@ -488,14 +488,16 @@ local_refresh_info(CamelFolder *folder, CamelException *ex)
 
        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);
        
 }