summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuli Suominen <drac@gentoo.org>2008-03-12 18:14:19 +0000
committerSamuli Suominen <drac@gentoo.org>2008-03-12 18:14:19 +0000
commit0095c0f446261477322647a10d4d7423fa1c1ad4 (patch)
tree110f221d60cc98847b5410e9c7a633547ba9743e /xfce-base/thunar/files
parentRemoving Marien Zwart (marienz, #107204) from metadata.xml. (diff)
downloadgentoo-2-0095c0f446261477322647a10d4d7423fa1c1ad4.tar.gz
gentoo-2-0095c0f446261477322647a10d4d7423fa1c1ad4.tar.bz2
gentoo-2-0095c0f446261477322647a10d4d7423fa1c1ad4.zip
Fix problem with Thunar leaving defuncts by including a fix from upstream bug 2983, thanks to VQuickSilver and tcunha.
(Portage version: 2.1.4.4)
Diffstat (limited to 'xfce-base/thunar/files')
-rw-r--r--xfce-base/thunar/files/thunar-0.9.0-fix-defuncts.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/xfce-base/thunar/files/thunar-0.9.0-fix-defuncts.patch b/xfce-base/thunar/files/thunar-0.9.0-fix-defuncts.patch
new file mode 100644
index 000000000000..4353c7490ffe
--- /dev/null
+++ b/xfce-base/thunar/files/thunar-0.9.0-fix-defuncts.patch
@@ -0,0 +1,31 @@
+Index: thunar-vfs/thunar-vfs-exec.c
+===================================================================
+--- thunar-vfs/thunar-vfs-exec.c (revision 26428)
++++ thunar-vfs/thunar-vfs-exec.c (working copy)
+@@ -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);