From 6de256c2a2b23f30d35e4a2213ad5839bf141d06 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Sun, 24 Dec 2000 00:46:20 +0000 Subject: Lock the command channel while searching. (imap_body_contains): If 2000-12-24 Not Zed * providers/imap/camel-imap-search.c (imap_body_contains): Lock the command channel while searching. (imap_body_contains): If performing a whole uid search, then add references to our own summary items, dont look it up in the folder. This way they can't vanish unexpectedly. * providers/imap/camel-imap-folder.h (CamelImapFolder): Added a private field. * providers/imap/camel-imap-private.h: Added lock for imap searches. * Merge from camel-mt-branch. * providers/imap/camel-imap-folder.c (imap_update_summary): Merge fix, use the folder->summary. (imap_get_message_flags, imap_set_message_flags, imap_get_message_user_flag, imap_set_message_user_flag): Removed again. (camel_imap_folder_init): Setup private data/lock. (imap_finalize): Free private data/search lock. (imap_search_free): Lock the search_lock. (imap_search_by_expression): Lock the search lock when using the search object. Also copy/ref hte summary, rather than getting it directly. (imap_refresh_info): Free any info lookups. Use folder->summary not imap_folder->summary. And lock around commands. svn path=/trunk/; revision=7150 --- camel/camel-store.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'camel/camel-store.h') diff --git a/camel/camel-store.h b/camel/camel-store.h index 7558c0eb5a..0ad6e0cbed 100644 --- a/camel/camel-store.h +++ b/camel/camel-store.h @@ -57,7 +57,9 @@ typedef struct _CamelFolderInfo { struct _CamelStore { CamelService parent_object; + struct _CamelStorePrivate *priv; + /* should have cache_lock when accessing this (priv->cache_lock) */ GHashTable *folders; int flags; @@ -99,6 +101,7 @@ typedef struct { void (*uncache_folder) (CamelStore *store, CamelFolder *folder); + /* this should take flags instead, so its more futureproof */ CamelFolderInfo *(*get_folder_info) (CamelStore *store, const char *top, gboolean fast, -- cgit v1.2.3