[tracker-miners/wip/carlosg/miner-fs-fixes: 1/4] tracker-miner-files: Only re-check tracker-extract if gone



commit 0c4c63e7630fc06b0ac9357672c4ef66d1971a62
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sun May 17 15:47:10 2020 +0200

    tracker-miner-files: Only re-check tracker-extract if gone
    
    If we set up the DBus name watch and directly get a "name lost"
    callback (eg. if it failed to be autostarted), do not try to restart
    it again and again.
    
    This is only useful to kick tracker-extract back to working after
    eg. some crash, so just check that it was previously running.

 src/miners/fs/tracker-extract-watchdog.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
---
diff --git a/src/miners/fs/tracker-extract-watchdog.c b/src/miners/fs/tracker-extract-watchdog.c
index e6dd88421..69a2bbbf7 100644
--- a/src/miners/fs/tracker-extract-watchdog.c
+++ b/src/miners/fs/tracker-extract-watchdog.c
@@ -35,7 +35,8 @@ struct _TrackerExtractWatchdog {
        GObject parent_class;
        gchar *domain;
        guint extractor_watchdog_id;
-       gboolean initializing;
+       guint initializing : 1;
+       guint name_visible : 1;
 };
 
 static void extract_watchdog_start (TrackerExtractWatchdog *watchdog,
@@ -62,6 +63,8 @@ extract_watchdog_name_appeared (GDBusConnection *conn,
 
        if (watchdog->initializing)
                watchdog->initializing = FALSE;
+
+       watchdog->name_visible = TRUE;
 }
 
 static void
@@ -71,6 +74,11 @@ extract_watchdog_name_vanished (GDBusConnection *conn,
 {
        TrackerExtractWatchdog *watchdog = user_data;
 
+       if (!watchdog->name_visible)
+               return;
+
+       watchdog->name_visible = FALSE;
+
        /* If connection is lost, there's not much we can startup */
        if (conn == NULL)
                return;


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