aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imap/camel-imap-command.h
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-05-02 03:16:14 +0800
committerDan Winship <danw@src.gnome.org>2001-05-02 03:16:14 +0800
commit6a5e6fbbeaa4e32cd2058019ae87132beba79429 (patch)
tree1a99e8c747947e8fe3e65d3a94aa36aeda91cf61 /camel/providers/imap/camel-imap-command.h
parent4ce894e3ab34ee81967f1d69dfba71eb9f3c0944 (diff)
downloadgsoc2013-evolution-6a5e6fbbeaa4e32cd2058019ae87132beba79429.tar
gsoc2013-evolution-6a5e6fbbeaa4e32cd2058019ae87132beba79429.tar.gz
gsoc2013-evolution-6a5e6fbbeaa4e32cd2058019ae87132beba79429.tar.bz2
gsoc2013-evolution-6a5e6fbbeaa4e32cd2058019ae87132beba79429.tar.lz
gsoc2013-evolution-6a5e6fbbeaa4e32cd2058019ae87132beba79429.tar.xz
gsoc2013-evolution-6a5e6fbbeaa4e32cd2058019ae87132beba79429.tar.zst
gsoc2013-evolution-6a5e6fbbeaa4e32cd2058019ae87132beba79429.zip
Redo command locking. Since command_lock is recursive, we can just get a
* providers/imap/camel-imap-command.c (camel_imap_command): Redo command locking. Since command_lock is recursive, we can just get a lock here, and release it either on error, or when the caller frees the response data. (This simplifies a lot of stuff, and fixes some problems with camel_imap_folder_changed being called without the command_lock locked because of the 2001-03-22 change.) (camel_imap_response_free): (camel_imap_response_free_without_processing): (camel_imap_response_extract): (camel_imap_response_extract_continuation): These all take a CamelImapStore now as well, to deal with locking. * providers/imap/camel-imap-private.h: Add CAMEL_IMAP_STORE_ASSERT_LOCKED, which defaults to a noop, but can be made to call e_mutex_assert_locked. * providers/imap/camel-imap-folder.c, camel-imap-search.c, camel-imap-store.c: Simplify using new locking stuff. Add a few CAMEL_IMAP_STORE_ASSERT_LOCKED checks. svn path=/trunk/; revision=9639
Diffstat (limited to 'camel/providers/imap/camel-imap-command.h')
-rw-r--r--camel/providers/imap/camel-imap-command.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/camel/providers/imap/camel-imap-command.h b/camel/providers/imap/camel-imap-command.h
index 5b841525fa..ba9ca7010a 100644
--- a/camel/providers/imap/camel-imap-command.h
+++ b/camel/providers/imap/camel-imap-command.h
@@ -3,10 +3,10 @@
/*
* Authors:
- * Dan Winship <danw@helixcode.com>
- * Jeffrey Stedfast <fejj@helixcode.com>
+ * Dan Winship <danw@ximian.com>
+ * Jeffrey Stedfast <fejj@ximian.com>
*
- * Copyright (C) 2000 Helix Code, Inc.
+ * Copyright (C) 2000, 2001 Ximian, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -50,12 +50,16 @@ CamelImapResponse *camel_imap_command_continuation (CamelImapStore *store,
CamelException *ex,
const char *cmdbuf);
-void camel_imap_response_free (CamelImapResponse *response);
-void camel_imap_response_free_without_processing(CamelImapResponse *response);
-char *camel_imap_response_extract (CamelImapResponse *response,
+void camel_imap_response_free (CamelImapStore *store,
+ CamelImapResponse *response);
+void camel_imap_response_free_without_processing(CamelImapStore *store,
+ CamelImapResponse *response);
+char *camel_imap_response_extract (CamelImapStore *store,
+ CamelImapResponse *response,
const char *type,
CamelException *ex);
-char *camel_imap_response_extract_continuation (CamelImapResponse *response,
+char *camel_imap_response_extract_continuation (CamelImapStore *store,
+ CamelImapResponse *response,
CamelException *ex);
#endif /* CAMEL_IMAP_COMMAND_H */