diff options
Diffstat (limited to 'src/process.c')
| -rw-r--r-- | src/process.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/process.c b/src/process.c index 45e8afdd22c..9df003fa3a3 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -7029,6 +7029,16 @@ integer or floating point values. | |||
| 7029 | return system_process_attributes (pid); | 7029 | return system_process_attributes (pid); |
| 7030 | } | 7030 | } |
| 7031 | 7031 | ||
| 7032 | void | ||
| 7033 | catch_child_signal (void) | ||
| 7034 | { | ||
| 7035 | #ifdef SIGCHLD | ||
| 7036 | struct sigaction action; | ||
| 7037 | emacs_sigaction_init (&action, deliver_child_signal); | ||
| 7038 | sigaction (SIGCHLD, &action, 0); | ||
| 7039 | #endif | ||
| 7040 | } | ||
| 7041 | |||
| 7032 | 7042 | ||
| 7033 | /* This is not called "init_process" because that is the name of a | 7043 | /* This is not called "init_process" because that is the name of a |
| 7034 | Mach system call, so it would cause problems on Darwin systems. */ | 7044 | Mach system call, so it would cause problems on Darwin systems. */ |
| @@ -7044,9 +7054,7 @@ init_process_emacs (void) | |||
| 7044 | if (! noninteractive || initialized) | 7054 | if (! noninteractive || initialized) |
| 7045 | #endif | 7055 | #endif |
| 7046 | { | 7056 | { |
| 7047 | struct sigaction action; | 7057 | catch_child_signal (); |
| 7048 | emacs_sigaction_init (&action, deliver_child_signal); | ||
| 7049 | sigaction (SIGCHLD, &action, 0); | ||
| 7050 | } | 7058 | } |
| 7051 | 7059 | ||
| 7052 | FD_ZERO (&input_wait_mask); | 7060 | FD_ZERO (&input_wait_mask); |