aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2012-11-24 08:24:13 +0200
committerEli Zaretskii2012-11-24 08:24:13 +0200
commit259719a65db5d0aa315d6f942f333494b88619a2 (patch)
treef1e2990a2563114e3771ccaca3162fe6f49ae278 /src
parent6d4e8f62e93b575a1da2cd2b4abeb9dce56e1e52 (diff)
downloademacs-259719a65db5d0aa315d6f942f333494b88619a2.tar.gz
emacs-259719a65db5d0aa315d6f942f333494b88619a2.zip
Fix ChangeLog entries for the last commit.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog40
1 files changed, 17 insertions, 23 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 655eb1595c0..8ca913b75fc 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,9 +1,18 @@
12012-11-23 Paul Eggert <eggert@cs.ucla.edu> 12012-11-23 Paul Eggert <eggert@cs.ucla.edu>
2 Eli Zaretskii <eliz@gnu.org>
2 3
3 Fix a race condition with glib (Bug#8855). 4 Fix a race condition with glib (Bug#8855).
4 This is a backport from the trunk, consisting of: 5 The symptom is a diagnostic "GLib-WARNING **: In call to
6 g_spawn_sync(), exit status of a child process was requested but
7 SIGCHLD action was set to SIG_IGN and ECHILD was received by
8 waitpid(), so exit status can't be returned." The diagnostic
9 is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
10 The real bug is a race condition between Emacs and glib: Emacs
11 does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
12 so that glib can't find it. Work around the bug by invoking
13 waitpid only on subprocesses that Emacs itself creates.
5 14
6 2012-11-17 Eli Zaretskii <eliz@gnu.org> 15 This is a backport from the trunk, consisting of:
7 16
8 * w32proc.c (create_child): Don't clip the PID of the child 17 * w32proc.c (create_child): Don't clip the PID of the child
9 process to fit into an Emacs integer, as this is no longer a 18 process to fit into an Emacs integer, as this is no longer a
@@ -20,26 +29,10 @@
20 29
21 * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions, 30 * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
22 no longer needed. 31 no longer needed.
23 (record_child_status_change): Remove the setting of 32 (create_process, record_child_status_change): Don't use special
24 record_at_most_one_child for the !WNOHANG case. 33 value -1 in pid field, as the caller now must know the pid rather
25 34 than having the callee infer it. The inference was sometimes
26 2012-11-03 Paul Eggert <eggert@cs.ucla.edu> 35 incorrect anyway, due to another race.
27
28 Fix a race condition that causes Emacs to mess up glib (Bug#8855).
29 This is a backport from the trunk.
30 The symptom is a diagnostic "GLib-WARNING **: In call to
31 g_spawn_sync(), exit status of a child process was requested but
32 SIGCHLD action was set to SIG_IGN and ECHILD was received by
33 waitpid(), so exit status can't be returned." The diagnostic
34 is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
35 The real bug is a race condition between Emacs and glib: Emacs
36 does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
37 so that glib can't find it. Work around the bug by invoking
38 waitpid only on subprocesses that Emacs itself creates.
39 * process.c (create_process, record_child_status_change):
40 Don't use special value -1 in pid field, as the caller now must
41 know the pid rather than having the callee infer it. The
42 inference was sometimes incorrect anyway, due to another race.
43 (create_process): Set new 'alive' member if child is created. 36 (create_process): Set new 'alive' member if child is created.
44 (process_status_retrieved): New function. 37 (process_status_retrieved): New function.
45 (record_child_status_change): Use it. 38 (record_child_status_change): Use it.
@@ -47,7 +40,8 @@
47 processes that Emacs already knows about. Move special-case code 40 processes that Emacs already knows about. Move special-case code
48 for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of 41 for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of
49 processes that have already been waited for, by testing and 42 processes that have already been waited for, by testing and
50 clearing new 'alive' member. 43 clearing new 'alive' member. Remove the setting of
44 record_at_most_one_child for the !WNOHANG case.
51 (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change 45 (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
52 now does this internally. 46 now does this internally.
53 (handle_child_signal): Let record_child_status_change do all 47 (handle_child_signal): Let record_child_status_change do all