diff options
author | Dan Winship <danw@src.gnome.org> | 2001-05-02 03:16:14 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-05-02 03:16:14 +0800 |
commit | 6a5e6fbbeaa4e32cd2058019ae87132beba79429 (patch) | |
tree | 1a99e8c747947e8fe3e65d3a94aa36aeda91cf61 /camel/providers/imap/camel-imap-command.h | |
parent | 4ce894e3ab34ee81967f1d69dfba71eb9f3c0944 (diff) | |
download | gsoc2013-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.h | 18 |
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 */ |