[evolution-patches] head + stable, imap deadlock



There is at least one bug for this, but bugzilla is being too much of a
pig for me to try and find it ...

I think this will fix a problem where you get evolution hang with a
'pinging server' status entry, which never goes away.  You eventually
have to kill it.

 Z

Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/camel/ChangeLog,v
retrieving revision 1.1877
diff -u -3 -r1.1877 ChangeLog
--- ChangeLog	3 Sep 2003 18:05:53 -0000	1.1877
+++ ChangeLog	5 Sep 2003 22:28:19 -0000
@@ -1,3 +1,9 @@
+2003-09-05  Not Zed  <NotZed Ximian com>
+
+	* providers/imap/camel-imap-store.c (imap_noop): call
+	camel_folder_sync bypassing the folder lock.  See
+	imap_store_refresh_folders too.
+
 2003-08-20  Not Zed  <NotZed Ximian com>
 
 	** See bug #47765.
Index: providers/imap/camel-imap-store.c
===================================================================
RCS file: /cvs/gnome/evolution/camel/providers/imap/camel-imap-store.c,v
retrieving revision 1.256
diff -u -3 -r1.256 camel-imap-store.c
--- providers/imap/camel-imap-store.c	19 Aug 2003 02:36:26 -0000	1.256
+++ providers/imap/camel-imap-store.c	5 Sep 2003 22:28:21 -0000
@@ -1460,8 +1460,8 @@
 	
 	current_folder = imap_store->current_folder;
 	if (current_folder && imap_summary_is_dirty (current_folder->summary)) {
-		/* let's sync the flags instead */
-		camel_folder_sync (current_folder, FALSE, ex);
+		/* let's sync the flags instead.  NB: must avoid folder lock */
+		((CamelFolderClass *)((CamelObject *)current_folder)->klass)->sync(current_folder, FALSE, ex);
 	} else {
 		response = camel_imap_command (imap_store, NULL, ex, "NOOP");
 		if (response)


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