Patch: fix some old style idle code



	Hi

This patch avoids some hangs that could happen on moving messages. This
is caused by some old style start idle calls we didn't catch on
developing the new idle lock implementation.

Changelog would be:
* libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c:
  Remove calls to camel_imap_folder_start_idle that could happen even
  when idle was locked by an operation, causing hangs.

-- 
José Dapena Paz <jdapena igalia com>
Igalia
Index: libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c
===================================================================
--- libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c	(revisión: 3808)
+++ libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c	(copia de trabajo)
@@ -1599,7 +1599,6 @@
 	imap_sync_offline (folder, ex);
 
 	camel_imap_store_connect_unlock_start_idle (store);
-	camel_imap_folder_start_idle (folder);
 
 }
 
@@ -2286,7 +2285,6 @@
 	if (transferred_uids)
 		*transferred_uids = NULL;
 
-	camel_imap_folder_start_idle (source);
 
 }
 
@@ -4439,7 +4437,10 @@
 imap_set_push_email (CamelFolder *folder, gboolean setting)
 {
 	CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
+	CamelImapStore *store;
 
+	store = CAMEL_IMAP_STORE (folder->parent_store);
+
 	if (imap_folder->do_push_email && !setting) {
 		imap_folder->do_push_email = setting;
 		camel_imap_folder_stop_idle (folder);
@@ -4447,7 +4448,7 @@
 
 	if (!imap_folder->do_push_email && setting) {
 		imap_folder->do_push_email = setting;
-		camel_imap_folder_start_idle (folder);
+		camel_imap_store_start_idle_if_unlocked (store);
 	}
 
 	return;


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