diff options
Diffstat (limited to 'xfce-base/thunar/files/thunar-0.9.0-fix-defuncts.patch')
-rw-r--r-- | xfce-base/thunar/files/thunar-0.9.0-fix-defuncts.patch | 31 |
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); |