diff options
author | Philipp Stephani <phst@google.com> | 2021-01-09 21:17:42 +0100 |
---|---|---|
committer | Philipp Stephani <phst@google.com> | 2021-01-09 21:26:52 +0100 |
commit | 4cebd2ded01f733957919cea9d10a67101cb7a67 (patch) | |
tree | 03d6987b9a16f111409d2cda87d4fb413ad350ca /src/lisp.h | |
parent | ace749f2e3be5b23cf4cd29c702a0e82d4d871c3 (diff) | |
download | emacs-4cebd2ded01f733957919cea9d10a67101cb7a67.tar.gz emacs-4cebd2ded01f733957919cea9d10a67101cb7a67.tar.bz2 emacs-4cebd2ded01f733957919cea9d10a67101cb7a67.zip |
Don't unblock SIGCHLD too early.
We first need to register the received process ID so that
'handle_child_signal' checks it. Otherwise we might never call
'waitpid' for these processes, risking deadlock.
* src/callproc.c (call_process):
* src/process.c (create_process): Don't unblock SIGCHLD before
registering the process ID to wait for.
* src/callproc.c (emacs_spawn): Accept a signal set from the caller.
Diffstat (limited to 'src/lisp.h')
-rw-r--r-- | src/lisp.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lisp.h b/src/lisp.h index ca0eb51c061..d139df93424 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -4495,8 +4495,8 @@ extern void setup_process_coding_systems (Lisp_Object); # define CHILD_SETUP_ERROR_DESC "Doing vfork" #endif -extern int emacs_spawn (pid_t *, int, int, int, char **, char **, const char *, - const char *); +extern int emacs_spawn (pid_t *, int, int, int, char **, char **, + const char *, const char *, const sigset_t *); extern char **make_environment_block (Lisp_Object); extern void init_callproc_1 (void); extern void init_callproc (void); |