Wrap file I/O to claws_* to benefit from custom locking when
[claws.git] / src / advsearch.c
index ccfad6c9c2531eb805658a27cf739a40b157456b..85dc3cc2d8ac245e3d5972b85b7a18e3a9338bee 100644 (file)
@@ -31,6 +31,7 @@
 #include "matcher_parser.h"
 #include "utils.h"
 #include "prefs_common.h"
+#include "timing.h"
 
 struct _AdvancedSearch {
        struct {
@@ -502,27 +503,33 @@ static gboolean search_impl(MsgInfoList **messages, AdvancedSearch* search,
                            FolderItem* folderItem, gboolean recursive)
 {
        if (recursive) {
-               if (!search_impl(messages, search, folderItem, FALSE))
+               START_TIMING("recursive");
+               if (!search_impl(messages, search, folderItem, FALSE)) {
+                       END_TIMING();
                        return FALSE;
-
+               }
                if (folderItem->node->children != NULL && !search->search_aborted) {
                        GNode *node;
                        for (node = folderItem->node->children; node != NULL; node = node->next) {
                                FolderItem *cur = FOLDER_ITEM(node->data);
                                debug_print("in: %s\n", cur->path);
-                               if (!search_impl(messages, search, cur, TRUE))
+                               if (!search_impl(messages, search, cur, TRUE)) {
+                                       END_TIMING();
                                        return FALSE;
+                               }
                        }
                }
+               END_TIMING();
        } else if (!folderItem->no_select) {
                MsgNumberList *msgnums = NULL;
                MsgNumberList *cur;
                MsgInfoList *msgs = NULL;
                gboolean can_search_on_server = folderItem->folder->klass->supports_server_search;
-
+               START_TIMING("folder");
                if (!search_filter_folder(&msgnums, search, folderItem,
                                          can_search_on_server)) {
                        g_slist_free(msgnums);
+                       END_TIMING();
                        return FALSE;
                }
 
@@ -542,6 +549,7 @@ static gboolean search_impl(MsgInfoList **messages, AdvancedSearch* search,
                }
 
                g_slist_free(msgnums);
+               END_TIMING();
        }
 
        return TRUE;