tracker r2176 - in branches/indexer-split: . src/tracker-indexer



Author: carlosg
Date: Thu Aug 28 08:58:17 2008
New Revision: 2176
URL: http://svn.gnome.org/viewvc/tracker?rev=2176&view=rev

Log:
2008-08-28  Carlos Garnacho  <carlos imendio com>

        * src/tracker-indexer/tracker-metadata-utils.c
        (tracker_metadata_watch_cb): Rename to process_watch_cb() and make
        generic to all spawned processes, so we don't leave defunct processes
        all around.


Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/src/tracker-indexer/tracker-metadata-utils.c

Modified: branches/indexer-split/src/tracker-indexer/tracker-metadata-utils.c
==============================================================================
--- branches/indexer-split/src/tracker-indexer/tracker-metadata-utils.c	(original)
+++ branches/indexer-split/src/tracker-indexer/tracker-metadata-utils.c	Thu Aug 28 08:58:17 2008
@@ -70,6 +70,19 @@
 	g_free (context);
 }
 
+static void
+process_watch_cb (GPid     pid,
+		  gint     status,
+		  gpointer user_data)
+{
+	g_debug ("Process '%d' exited with code: %d\n", pid, status);
+
+	if (user_data == metadata_context) {
+		destroy_process_context (metadata_context);
+		metadata_context = NULL;
+	}
+}
+
 static ProcessContext *
 create_process_context (const gchar **argv)
 {
@@ -92,6 +105,8 @@
 
 	g_io_channel_set_flags (context->stdout_channel, flags, NULL);
 
+	g_child_watch_add (context->pid, process_watch_cb, context);
+
 	return context;
 }
 
@@ -137,19 +152,6 @@
 	return TRUE;
 }
 
-static void
-tracker_metadata_watch_cb (GPid     pid,
-			   gint     status,
-			   gpointer user_data)
-{
-	g_debug ("Metadata extractor exited with code: %d\n", status);
-
-	if (metadata_context) {
-		destroy_process_context (metadata_context);
-		metadata_context = NULL;
-	}
-}
-
 static gchar **
 tracker_metadata_query_file (const gchar *path,
 			     const gchar *mimetype)
@@ -169,8 +171,6 @@
 		if (!metadata_context) {
 			return NULL;
 		}
-
-		g_child_watch_add (metadata_context->pid, tracker_metadata_watch_cb, NULL);
 	}
 
 	utf_path = g_filename_from_utf8 (path, -1, NULL, NULL, NULL);



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