diff options
| author | Paul Eggert | 2012-12-05 23:31:58 -0800 |
|---|---|---|
| committer | Paul Eggert | 2012-12-05 23:31:58 -0800 |
| commit | 35fb8050457a0edc6a09f38fb1dd84a9c7732352 (patch) | |
| tree | 563dbd821a3efc83e6ad71c7f6a0dc21f26c8c5b /src/process.h | |
| parent | 565212e5983cdcc478ed34bcdbd63f154e5e418f (diff) | |
| download | emacs-35fb8050457a0edc6a09f38fb1dd84a9c7732352.tar.gz emacs-35fb8050457a0edc6a09f38fb1dd84a9c7732352.zip | |
Fix a recently-introduced delete-process race condition.
* callproc.c, process.h (record_kill_process):
New function, containing part of the old call_process_kill.
(call_process_kill): Use it.
This does not change call_process_kill's behavior.
* process.c (Fdelete_process): Use record_kill_process to fix a
race condition that could cause Emacs to lose track of a child.
Diffstat (limited to 'src/process.h')
| -rw-r--r-- | src/process.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/process.h b/src/process.h index 4fa22747ca9..a0521689abf 100644 --- a/src/process.h +++ b/src/process.h | |||
| @@ -198,6 +198,12 @@ extern Lisp_Object QCspeed; | |||
| 198 | extern Lisp_Object QCbytesize, QCstopbits, QCparity, Qodd, Qeven; | 198 | extern Lisp_Object QCbytesize, QCstopbits, QCparity, Qodd, Qeven; |
| 199 | extern Lisp_Object QCflowcontrol, Qhw, Qsw, QCsummary; | 199 | extern Lisp_Object QCflowcontrol, Qhw, Qsw, QCsummary; |
| 200 | 200 | ||
| 201 | /* Defined in callproc.c. */ | ||
| 202 | |||
| 203 | extern void record_kill_process (struct Lisp_Process *); | ||
| 204 | |||
| 205 | /* Defined in process.c. */ | ||
| 206 | |||
| 201 | extern Lisp_Object list_system_processes (void); | 207 | extern Lisp_Object list_system_processes (void); |
| 202 | extern Lisp_Object system_process_attributes (Lisp_Object); | 208 | extern Lisp_Object system_process_attributes (Lisp_Object); |
| 203 | 209 | ||