From 8c85ed61ba64bd548460543dd87445b9a21dbf6a Mon Sep 17 00:00:00 2001 From: Michael Zucci Date: Tue, 16 Oct 2001 19:13:31 +0000 Subject: Added an async_event handler to store_info. (mail_note_store): Setup async * mail-folder-cache.c: Added an async_event handler to store_info. (mail_note_store): Setup async event handler here. (store_finalised): Flush out async events here. (folder_changed): Use async event handler to emit event. (mail_note_folder): Chagned, do most of the work in the calling context, only do the corba stuff in main. (store_folder_subscribed): Use async event, and do more work locally. (store_folder_unsubscribed): Same. (store_folder_deleted): Call store_folder_unsubscribed if we have to do any work. (store_folder_created): Call store_folder_subscribed if we have to do any work. (store_folder_unsubscribed): Ref store while busy. (real_folder_deleted): And unref here. (store_folder_subscribed): Reg store while busy. (real_folder_created): Unref here. (mail_note_folder): Ref folder while busy. (real_note_folder): And unref here. (mail_note_folder): Hook onto folder_deleted event. (folder_deleted): Just mark this folder as no longer available. * mail-session.c (register_timeout): Use mail_call_main instead of proxy_event. (remove_timeout): Same here. * folder-browser.c (folder_changed): use the new mail_async_event stuff. (folder_changed_main): Remove old async event handling stuff. (FOLDER_BROWSER_LOCK/UNLOCK): Removed. (FolderBrowserPrivate): Removed too, sigh. * mail-mt.c (mail_async_event_new, mail_async_event_emit, mail_async_event_destroy): New functions to handle async events. (mail_proxy_event, mail_proxy_event_id): Removed old functions for async events. (do_call): Add suport for MAIL_CALL_p_pp. (mail_msg_free): Use mail_async_event instead of proxy_event. * message-list.c (message_changed): Promote the message_changed to a folder_changed and use main_folder_changed to process it. (main_message_changed): Remove.d (message_list_init): Setup async event handler. (message_list_destroy): Remove async handler. (folder_changed): Use async hanler to emit event in main loop. (message_changed): Same. svn path=/trunk/; revision=13698 --- mail/message-list.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'mail/message-list.h') diff --git a/mail/message-list.h b/mail/message-list.h index 380d57d46d..2846c04ec4 100644 --- a/mail/message-list.h +++ b/mail/message-list.h @@ -81,6 +81,9 @@ struct _MessageList { /* locks */ GMutex *hide_lock; /* for any 'hide' info above */ + + /* for message/folder chagned event handling */ + struct _MailAsyncEvent *async_event; }; typedef struct { -- cgit v1.2.3