diff options
author | Not Zed <NotZed@Ximian.com> | 2001-01-21 12:19:30 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2001-01-21 12:19:30 +0800 |
commit | 50ef085e18b3cd54f1cea88ceb20156a56fb050d (patch) | |
tree | 7c58ef7f050d802dccf2a583fc225a5de40a997b /mail/mail-mt.c | |
parent | e511bc95beadc682485d432312f50d9ae1be7566 (diff) | |
download | gsoc2013-evolution-50ef085e18b3cd54f1cea88ceb20156a56fb050d.tar.gz gsoc2013-evolution-50ef085e18b3cd54f1cea88ceb20156a56fb050d.tar.zst gsoc2013-evolution-50ef085e18b3cd54f1cea88ceb20156a56fb050d.zip |
Init a cancel field in the message. (mail_msg_free): Free it.
2001-01-21 Not Zed <NotZed@Ximian.com>
* mail-mt.c (mail_msg_new): Init a cancel field in the message.
(mail_msg_free): Free it.
(mail_msg_cancel): New function to attempt to cancel an
operation by id. Impelementation functions can still be
uncancellable by not registering for cancellation, etc, or do it
themselves as well.
* mail-send-recv.c (fetch_mail_filter_folder): set folder_uid's
properly, so we can save it later.
(filter_folder_filter): Renamed from fetch_mail_filter_folder,
since its going to be used for all filtering.
(mail_fetch_mail): Changed from mail_filter_mail.
(mail_filter_folder): New function, replaces
mail_do_filter_ondemand functionality.
(mail_filter_on_demand): New function, actually replaces
mail_do_filter_ondemand.
(receive_get_folder): Added an exception arg.
(mail_send_message): New function to just send a message.
(send_mail_send): Use mail_send_message.
(send_queue_send): New send qeue code, use mail_send_message, and
clean up some stuff.
(mail_send_receive): Changed from mail_receive.
(build_dialogue): Setup the sending data, as well.
(mail_update_subfolders): New function to update folder info.
(send_mail_send): hook into cancellation if we want.
svn path=/trunk/; revision=7672
Diffstat (limited to 'mail/mail-mt.c')
-rw-r--r-- | mail/mail-mt.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/mail/mail-mt.c b/mail/mail-mt.c index b18f78c06e..1735432070 100644 --- a/mail/mail-mt.c +++ b/mail/mail-mt.c @@ -40,6 +40,7 @@ void *mail_msg_new(mail_msg_op_t *ops, EMsgPort *reply_port, size_t size) msg->ops = ops; msg->seq = mail_msg_seq++; msg->msg.reply_port = reply_port; + msg->cancel = camel_cancel_new(); camel_exception_init(&msg->ex); g_hash_table_insert(mail_msg_active, (void *)msg->seq, msg); @@ -63,6 +64,7 @@ void mail_msg_free(void *msg) MAIL_MT_UNLOCK(mail_msg_lock); + camel_cancel_unref(m->cancel); camel_exception_clear(&m->ex); g_free(m); } @@ -91,6 +93,20 @@ void mail_msg_check_error(void *msg) g_free(text); } +void mail_msg_cancel(unsigned int msgid) +{ + struct _mail_msg *m; + + MAIL_MT_LOCK(mail_msg_lock); + m = g_hash_table_lookup(mail_msg_active, (void *)msgid); + + if (m) + camel_cancel_cancel(m->cancel); + + MAIL_MT_UNLOCK(mail_msg_lock); +} + + /* waits for a message to be finished processing (freed) the messageid is from struct _mail_msg->seq */ void mail_msg_wait(unsigned int msgid) |