diff options
| author | Stefan Monnier | 2006-04-08 15:07:35 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2006-04-08 15:07:35 +0000 |
| commit | 6bfd98e75de5ae13bdceddb7effda6bb41bedf79 (patch) | |
| tree | f2b62be97f00d1c098052376bf531dddb635dfb7 /src/process.h | |
| parent | 67438f773f7ac8f651029661ab9b578b80ba0722 (diff) | |
| download | emacs-6bfd98e75de5ae13bdceddb7effda6bb41bedf79.tar.gz emacs-6bfd98e75de5ae13bdceddb7effda6bb41bedf79.zip | |
* process.h (struct Lisp_Process): Replace Lisp_Objects `pid',
`raw_status_high', and `raw_status_low' with plain integers, and move
them to the end of the structure.
* alloc.c (allocate_process): Use PSEUDOVECSIZE to initialize the
pseudovector's size field so only the Lisp_Object fields get GC'd.
* process.c (update_status, make_process, Fdelete_process)
(Fprocess_status, list_processes_1, start_process_unwind)
(create_process, Fmake_network_process, server_accept_connection)
(wait_reading_process_output, send_process, Fprocess_running_child_p)
(process_send_signal, proc_encode_coding_system, Fprocess_send_eof)
(sigchld_handler, status_notify): Adjust to new non-Lisp fields for
`pid' and `raw_status'.
(Fprocess_id, Fsignal_process): Same, and additionally use floats when
representing PIDs that are larger than most-positive-fixnum.
Diffstat (limited to 'src/process.h')
| -rw-r--r-- | src/process.h | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/process.h b/src/process.h index 9625556888c..c4b4281fedf 100644 --- a/src/process.h +++ b/src/process.h | |||
| @@ -51,8 +51,6 @@ struct Lisp_Process | |||
| 51 | Lisp_Object log; | 51 | Lisp_Object log; |
| 52 | /* Buffer that output is going to */ | 52 | /* Buffer that output is going to */ |
| 53 | Lisp_Object buffer; | 53 | Lisp_Object buffer; |
| 54 | /* Number of this process */ | ||
| 55 | Lisp_Object pid; | ||
| 56 | /* t if this is a real child process. | 54 | /* t if this is a real child process. |
| 57 | For a net connection, it is a plist based on the arguments to make-network-process. */ | 55 | For a net connection, it is a plist based on the arguments to make-network-process. */ |
| 58 | Lisp_Object childp; | 56 | Lisp_Object childp; |
| @@ -63,10 +61,6 @@ struct Lisp_Process | |||
| 63 | /* Non-nil means kill silently if Emacs is exited. | 61 | /* Non-nil means kill silently if Emacs is exited. |
| 64 | This is the inverse of the `query-on-exit' flag. */ | 62 | This is the inverse of the `query-on-exit' flag. */ |
| 65 | Lisp_Object kill_without_query; | 63 | Lisp_Object kill_without_query; |
| 66 | /* Record the process status in the raw form in which it comes from `wait'. | ||
| 67 | This is to avoid consing in a signal handler. */ | ||
| 68 | Lisp_Object raw_status_low; | ||
| 69 | Lisp_Object raw_status_high; | ||
| 70 | /* Symbol indicating status of process. | 64 | /* Symbol indicating status of process. |
| 71 | This may be a symbol: run, open, or closed. | 65 | This may be a symbol: run, open, or closed. |
| 72 | Or it may be a list, whose car is stop, exit or signal | 66 | Or it may be a list, whose car is stop, exit or signal |
| @@ -112,6 +106,19 @@ struct Lisp_Process | |||
| 112 | Lisp_Object read_output_delay; | 106 | Lisp_Object read_output_delay; |
| 113 | /* Skip reading this process on next read. */ | 107 | /* Skip reading this process on next read. */ |
| 114 | Lisp_Object read_output_skip; | 108 | Lisp_Object read_output_skip; |
| 109 | |||
| 110 | /* After this point, there are no Lisp_Objects any more. */ | ||
| 111 | |||
| 112 | /* Number of this process. | ||
| 113 | allocate_process assumes this is the first non-Lisp_Object field. | ||
| 114 | A value 0 is used for pseudo-processes such as network connections. */ | ||
| 115 | pid_t pid; | ||
| 116 | /* Record the process status in the raw form in which it comes from `wait'. | ||
| 117 | This is to avoid consing in a signal handler. The `raw_status_new' | ||
| 118 | flag indicates that `raw_status' contains a new status that still | ||
| 119 | needs to be synced to `status'. */ | ||
| 120 | int raw_status_new : 1; | ||
| 121 | int raw_status; | ||
| 115 | }; | 122 | }; |
| 116 | 123 | ||
| 117 | /* Every field in the preceding structure except for the first two | 124 | /* Every field in the preceding structure except for the first two |