diff options
author | Not Zed <NotZed@Ximian.com> | 2004-09-27 13:30:11 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2004-09-27 13:30:11 +0800 |
commit | 140a2de7885a0e0e360125bfc1305da01eb68f6a (patch) | |
tree | b94d83a96d614ad8c172095796f50d3feea8a523 /camel/camel-operation.c | |
parent | a03468d97f0aff1cdc2c4ef99e474d10e07df0c5 (diff) | |
download | gsoc2013-evolution-140a2de7885a0e0e360125bfc1305da01eb68f6a.tar.gz gsoc2013-evolution-140a2de7885a0e0e360125bfc1305da01eb68f6a.tar.zst gsoc2013-evolution-140a2de7885a0e0e360125bfc1305da01eb68f6a.zip |
** See bug #63521.
2004-09-21 Not Zed <NotZed@Ximian.com>
** See bug #63521.
* camel-movemail.c (camel_movemail): don't clear exception on entry.
* camel-folder-search.c (match_words_message): use local exception.
* camel-operation.c (camel_operation_cancel_check): soak up all
cancellation requests as soon as we get one.
(camel_operation_uncancel): soak up all cancellation reqeusts when
we uncancel.
* camel-uid-cache.c (camel_uid_cache_save): open the file O_TRUNC
rather than O_EXCL, otherwise a crash would mean this file never
gets updated.
(camel_uid_cache_save): block cancellation around writes otherwise
we could be interupted from old cancellation.
* providers/local/camel-local-folder.c
(camel_local_folder_construct): don't clear exception here, just
don't pass it to summary load.
* providers/pop3/camel-pop3-store.c (pop3_connect): only clear the
exception when we received one we handled.
* camel-filter-driver.c (close_folder): if exception is already
set, don't pass it to folder.sync().
* camel-lock.c (camel_lock_folder): don't clear the exception
here, if it came in set its a programming error.
* camel-filter-driver.c (camel_filter_driver_filter_message): if
the exception is set after evaluating the expression, stop
immediately.
svn path=/trunk/; revision=27389
Diffstat (limited to 'camel/camel-operation.c')
-rw-r--r-- | camel/camel-operation.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/camel/camel-operation.c b/camel/camel-operation.c index 7c641251b4..adf4c981b1 100644 --- a/camel/camel-operation.c +++ b/camel/camel-operation.c @@ -334,7 +334,12 @@ camel_operation_uncancel(CamelOperation *cc) cc = (CamelOperation *)pthread_getspecific(operation_key); if (cc) { + CamelOperationMsg *msg; + LOCK(); + while ((msg = (CamelOperationMsg *)e_msgport_get(cc->cancel_port))) + g_free(msg); + cc->flags &= ~CAMEL_OPERATION_CANCELLED; UNLOCK(); } @@ -406,7 +411,9 @@ camel_operation_cancel_check (CamelOperation *cc) cancelled = TRUE; } else if ((msg = (CamelOperationMsg *)e_msgport_get(cc->cancel_port))) { d(printf("Got cancellation message\n")); - g_free(msg); + do { + g_free(msg); + } while ((msg = (CamelOperationMsg *)e_msgport_get(cc->cancel_port))); cc->flags |= CAMEL_OPERATION_CANCELLED; cancelled = TRUE; } else |