[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/emacs-24 r110947: Fix ChangeLog entries for
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/emacs-24 r110947: Fix ChangeLog entries for the last commit. |
Date: |
Sat, 24 Nov 2012 08:24:13 +0200 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 110947
committer: Eli Zaretskii <address@hidden>
branch nick: emacs-24
timestamp: Sat 2012-11-24 08:24:13 +0200
message:
Fix ChangeLog entries for the last commit.
modified:
nt/ChangeLog
src/ChangeLog
=== modified file 'nt/ChangeLog'
--- a/nt/ChangeLog 2012-11-23 22:20:31 +0000
+++ b/nt/ChangeLog 2012-11-24 06:24:13 +0000
@@ -1,10 +1,8 @@
-2012-11-23 Paul Eggert <address@hidden>
+2012-11-23 Eli Zaretskii <address@hidden>
Fix a race condition with glib (Bug#8855).
This is a backport from the trunk, consisting of:
- 2012-11-17 Eli Zaretskii <address@hidden>
-
* inc/sys/wait.h: New file, with prototype of waitpid and
definitions of macros it needs.
* inc/ms-w32.h (wait): Don't define, 'wait' is not used anymore.
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2012-11-23 22:20:31 +0000
+++ b/src/ChangeLog 2012-11-24 06:24:13 +0000
@@ -1,10 +1,19 @@
2012-11-23 Paul Eggert <address@hidden>
+ Eli Zaretskii <address@hidden>
Fix a race condition with glib (Bug#8855).
+ The symptom is a diagnostic "GLib-WARNING **: In call to
+ g_spawn_sync(), exit status of a child process was requested but
+ SIGCHLD action was set to SIG_IGN and ECHILD was received by
+ waitpid(), so exit status can't be returned." The diagnostic
+ is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
+ The real bug is a race condition between Emacs and glib: Emacs
+ does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
+ so that glib can't find it. Work around the bug by invoking
+ waitpid only on subprocesses that Emacs itself creates.
+
This is a backport from the trunk, consisting of:
- 2012-11-17 Eli Zaretskii <address@hidden>
-
* w32proc.c (create_child): Don't clip the PID of the child
process to fit into an Emacs integer, as this is no longer a
restriction.
@@ -20,26 +29,10 @@
* process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
no longer needed.
- (record_child_status_change): Remove the setting of
- record_at_most_one_child for the !WNOHANG case.
-
- 2012-11-03 Paul Eggert <address@hidden>
-
- Fix a race condition that causes Emacs to mess up glib (Bug#8855).
- This is a backport from the trunk.
- The symptom is a diagnostic "GLib-WARNING **: In call to
- g_spawn_sync(), exit status of a child process was requested but
- SIGCHLD action was set to SIG_IGN and ECHILD was received by
- waitpid(), so exit status can't be returned." The diagnostic
- is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
- The real bug is a race condition between Emacs and glib: Emacs
- does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
- so that glib can't find it. Work around the bug by invoking
- waitpid only on subprocesses that Emacs itself creates.
- * process.c (create_process, record_child_status_change):
- Don't use special value -1 in pid field, as the caller now must
- know the pid rather than having the callee infer it. The
- inference was sometimes incorrect anyway, due to another race.
+ (create_process, record_child_status_change): Don't use special
+ value -1 in pid field, as the caller now must know the pid rather
+ than having the callee infer it. The inference was sometimes
+ incorrect anyway, due to another race.
(create_process): Set new 'alive' member if child is created.
(process_status_retrieved): New function.
(record_child_status_change): Use it.
@@ -47,7 +40,8 @@
processes that Emacs already knows about. Move special-case code
for DOS_NT (which lacks WNOHANG) here, from caller. Keep track of
processes that have already been waited for, by testing and
- clearing new 'alive' member.
+ clearing new 'alive' member. Remove the setting of
+ record_at_most_one_child for the !WNOHANG case.
(CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
now does this internally.
(handle_child_signal): Let record_child_status_change do all
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/emacs-24 r110947: Fix ChangeLog entries for the last commit.,
Eli Zaretskii <=