blob: 4353c7490ffe645c32410c846fea1746d8bf7105 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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);
|