[tracker/miner-paranoid-logs: 2/3] libtracker-miner: Add to items_created just just before setting the GFileMonitor



commit c0861d5efb65ec47ddf94465c7ef9e1fd35b3379
Author: Aleksander Morgado <aleksander lanedo com>
Date:   Thu Aug 5 16:02:33 2010 +0200

    libtracker-miner: Add to items_created just just before setting the GFileMonitor

 src/libtracker-miner/tracker-miner-fs.c |   49 ++++++++++++++++++++++++++++++-
 1 files changed, 48 insertions(+), 1 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner-fs.c b/src/libtracker-miner/tracker-miner-fs.c
index 1d06b1c..97f68d9 100644
--- a/src/libtracker-miner/tracker-miner-fs.c
+++ b/src/libtracker-miner/tracker-miner-fs.c
@@ -2085,6 +2085,24 @@ fill_in_queue (TrackerMinerFS       *fs,
 
 		g_queue_push_tail (dir_data->nodes, node);
 
+#ifdef PARANOID_DEBUG
+		{
+			gboolean ignore;
+			gchar *uri;
+
+			uri = g_file_get_uri (file);
+			ignore = (g_object_get_qdata (G_OBJECT (file),
+			                              fs->private->quark_ignore_file) != NULL ?
+			          TRUE : FALSE);
+
+			paranoid_debug ("(Root dir) File '%s' set as %s",
+			                uri,
+			                ignore ? "IGNORED" : "NOT ignored");
+			g_free (uri);
+		}
+#endif
+
+
 		if (!g_object_get_qdata (G_OBJECT (file), fs->private->quark_ignore_file)) {
 			g_queue_push_tail (queue, g_object_ref (file));
 			return;
@@ -2111,6 +2129,23 @@ fill_in_queue (TrackerMinerFS       *fs,
 			file = children->data;
 			dir_data->n_items_processed++;
 
+#ifdef PARANOID_DEBUG
+		{
+			gboolean ignore;
+			gchar *uri;
+
+			uri = g_file_get_uri (file);
+			ignore = (g_object_get_qdata (G_OBJECT (file),
+			                              fs->private->quark_ignore_file) != NULL ?
+			          TRUE : FALSE);
+
+			paranoid_debug ("(Child) File '%s' set as %s",
+			                uri,
+			                ignore ? "IGNORED" : "NOT ignored");
+			g_free (uri);
+		}
+#endif
+
 			if (!g_object_get_qdata (G_OBJECT (file), fs->private->quark_ignore_file)) {
 				g_queue_push_tail (queue, g_object_ref (file));
 			}
@@ -2832,7 +2867,6 @@ monitor_item_created_cb (TrackerMonitor *monitor,
 		} else {
 			g_queue_push_tail (fs->private->items_created,
 			                   g_object_ref (file));
-
 			item_queue_handlers_set_up (fs);
 		}
 	}
@@ -3099,6 +3133,19 @@ crawler_check_directory_contents_cb (TrackerCrawler *crawler,
 	 * the finished sig?
 	 */
 	if (add_monitor) {
+		/* Before adding the monitor, start notifying the store
+		 * about the new directory, so that if any file event comes
+		 * afterwards, the directory is already in store. */
+		g_queue_push_tail (fs->private->items_created,
+		                   g_object_ref (parent));
+		item_queue_handlers_set_up (fs);
+
+		/* As we already added here, specify that it shouldn't be added
+		 * any more */
+		g_object_set_qdata (G_OBJECT (parent),
+		                    fs->private->quark_ignore_file,
+		                    GINT_TO_POINTER (TRUE));
+
 		tracker_monitor_add (fs->private->monitor, parent);
 	} else {
 		tracker_monitor_remove (fs->private->monitor, parent);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]