diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | libsylph/imap.c | 2 | ||||
-rw-r--r-- | src/query_search.c | 11 |
3 files changed, 13 insertions, 5 deletions
@@ -1,5 +1,10 @@ 2009-10-08 + * libsylph/imap.c + src/query_search.c: fixed compilation without thread support. + +2009-10-08 + * src/query_search.c: execute query search in another thread. 2009-10-07 diff --git a/libsylph/imap.c b/libsylph/imap.c index b7b7e55d..198bbc72 100644 --- a/libsylph/imap.c +++ b/libsylph/imap.c @@ -2640,7 +2640,9 @@ static gint imap_get_uncached_messages_func(IMAPSession *session, gpointer data) return IMAP_ERROR; } +#if USE_THREADS ((IMAPRealSession *)session)->prog_total = exists; +#endif str = g_string_new(NULL); diff --git a/src/query_search.c b/src/query_search.c index 770463ca..17755555 100644 --- a/src/query_search.c +++ b/src/query_search.c @@ -589,7 +589,6 @@ static void query_search_folder_show_progress(QueryData *data) #endif } -#if USE_THREADS static gpointer query_search_folder_func(gpointer data) { QueryData *qdata = (QueryData *)data; @@ -666,15 +665,16 @@ static gpointer query_search_folder_func(gpointer data) return GINT_TO_POINTER(0); } -#endif static void query_search_folder(FolderItem *item) { - GThread *thread; gchar *str; QueryData data = {item}; +#if USE_THREADS + GThread *thread; gint prev_count = 0; MsgInfo *msginfo; +#endif if (!item->path || item->stype == F_VIRTUAL) return; @@ -718,12 +718,13 @@ static void query_search_folder(FolderItem *item) g_thread_join(thread); debug_print("query_search_folder: thread exited\n"); -#else + + g_async_queue_free(data.queue); +#else /* !USE_THREADS */ query_search_folder_func(&data); #endif procmsg_set_auto_decrypt_message(TRUE); - g_free(data.folder_name); } |