aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog56
1 files changed, 55 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 479fb38e60b..3bfa9e929d5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,57 @@
12012-09-06 Paul Eggert <eggert@cs.ucla.edu>
2
3 Signal-handler cleanup (Bug#12327).
4 Emacs's signal handlers were written in the old 4.2BSD style with
5 sigblock and sigmask and so forth, and this led to some
6 inefficiencies and confusion. Rewrite these to use
7 pthread_sigmask etc. without copying signal sets around. Also,
8 get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
9 'signal', and instead use functions that do not attempt to take
10 over the system name space. This patch causes Emacs's text
11 segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
12 * alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
13 Do not include <signal.h> or "syssignal.h", as these
14 modules do not use signals.
15 * atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
16 * gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
17 Do not include <signal.h>, as "syssignal.h" does that for us now.
18 * atimer.c (sigmask_atimers): New function.
19 (block_atimers, unblock_atimers): New functions,
20 replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
21 All uses replaced.
22 * conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
23 no longer needed here.
24 * emacs.c (main): Inspect existing signal handler with sigaction,
25 so that there's no need to block and unblock SIGHUP.
26 * sysdep.c (struct save_signal): New member 'action', replacing
27 old member 'handler'.
28 (save_signal_handlers, restore_signal_handlers):
29 Use sigaction instead of 'signal' to save and restore.
30 (get_set_sighandler, set_sighandler) [!WINDOWSNT]:
31 New function. All users of 'signal' modified to use set_sighandler
32 if they're writeonly, and to use sys_signal if they're read+write.
33 (emacs_sigaction_init, forwarded_signal): New functions.
34 (sys_signal): Remove. All uses replaced by calls to sigaction
35 and emacs_sigaction_init, or by direct calls to 'signal'.
36 (sys_sigmask) [!__GNUC__]: Remove; no longer needed.
37 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
38 all uses replaced by pthread_sigmask etc. calls.
39 * syssignal.h: Include <signal.h>.
40 (emacs_sigaction_init, forwarded_signal): New decls.
41 (SIGMASKTYPE): Remove. All uses replaced by its definiens, sigset_t.
42 (SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
43 (sigmask, sys_sigmask): Remove; no longer needed.
44 (sigpause): Remove. All uses replaced by its definiens, sigsuspend.
45 (sigblock, sigunblock, sigfree):
46 (sigsetmask) [!defined sigsetmask]:
47 Remove. All uses replaced by pthread_sigmask.
48 (signal): Remove. Its remaining uses (with SIG_DFL and SIG_IGN)
49 no longer need to be replaced, and its typical old uses
50 are now done via emacs_sigaction_init and sigaction.
51 (sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
52 (sys_sigdel): Remove; unused.
53 (NSIG): Remove a FIXME; the code's fine. Remove an unnecessary ifdef.
54
12012-09-06 Eli Zaretskii <eliz@gnu.org> 552012-09-06 Eli Zaretskii <eliz@gnu.org>
2 56
3 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke 57 * process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
@@ -50,7 +104,7 @@
50 104
512012-09-05 Paul Eggert <eggert@cs.ucla.edu> 1052012-09-05 Paul Eggert <eggert@cs.ucla.edu>
52 106
53 Fix race conditions with signal handlers and errno. 107 Fix race conditions with signal handlers and errno (Bug#12327).
54 Be more systematic about preserving errno whenever a signal 108 Be more systematic about preserving errno whenever a signal
55 handler returns, even if it's not in the main thread. Do this by 109 handler returns, even if it's not in the main thread. Do this by
56 renaming signal handlers to distinguish between signal delivery 110 renaming signal handlers to distinguish between signal delivery