[Xfce4-commits] r26432 - in thunar/trunk: . thunar-vfs

Benedikt Meurer benny at xfce.org
Mon Dec 3 18:50:17 CET 2007


Author: benny
Date: 2007-12-03 17:50:17 +0000 (Mon, 03 Dec 2007)
New Revision: 26432

Modified:
   thunar/trunk/ChangeLog
   thunar/trunk/thunar-vfs/thunar-vfs-exec.c
Log:
2007-12-03	Benedikt Meurer <benny at xfce.org>

	* thunar-vfs/thunar-vfs-exec.c: Make sure, processes spawned from
	  Thunar and xfdesktop are properly joined. Bug #2983.




Modified: thunar/trunk/ChangeLog
===================================================================
--- thunar/trunk/ChangeLog	2007-12-03 13:38:01 UTC (rev 26431)
+++ thunar/trunk/ChangeLog	2007-12-03 17:50:17 UTC (rev 26432)
@@ -1,5 +1,10 @@
 2007-12-03	Benedikt Meurer <benny at xfce.org>
 
+	* thunar-vfs/thunar-vfs-exec.c: Make sure, processes spawned from
+	  Thunar and xfdesktop are properly joined. Bug #2983.
+
+2007-12-03	Benedikt Meurer <benny at xfce.org>
+
 	* thunar-vfs/thunar-vfs-volume-hal.c: Make sure to pass volumes
 	  without mountable file systems to thunar-volman.
 

Modified: thunar/trunk/thunar-vfs/thunar-vfs-exec.c
===================================================================
--- thunar/trunk/thunar-vfs/thunar-vfs-exec.c	2007-12-03 13:38:01 UTC (rev 26431)
+++ thunar/trunk/thunar-vfs/thunar-vfs-exec.c	2007-12-03 17:50:17 UTC (rev 26432)
@@ -324,8 +324,10 @@
   if (startup_data->watch_id != 0)
     g_source_remove (startup_data->watch_id);
 
-  /* close the PID */
-  g_spawn_close_pid (startup_data->pid);
+  /* make sure we don't leave zombies (see bug #2983 for details) */
+  g_child_watch_add_full (G_PRIORITY_LOW, startup_data->pid,
+                          (GChildWatchFunc) g_spawn_close_pid,
+                          NULL, NULL);
 
   /* release the startup data */
   _thunar_vfs_slice_free (TvsnStartupData, startup_data);
@@ -513,7 +515,13 @@
           startup_data->pid = pid;
         }
     }
+  else if (G_LIKELY (succeed))
+    {
+      /* make sure we don't leave zombies (see bug #2983 for details) */
+      g_child_watch_add_full (G_PRIORITY_LOW, pid, (GChildWatchFunc) g_spawn_close_pid, NULL, NULL);
 
+    }
+
   /* release the sn display */
   if (G_LIKELY (sn_display != NULL))
     sn_display_unref (sn_display);



More information about the Xfce4-commits mailing list