diff options
| author | Jan D | 2010-09-26 18:20:01 +0200 |
|---|---|---|
| committer | Jan D | 2010-09-26 18:20:01 +0200 |
| commit | 3fad2ad22ee508b6926c71fb87d53728bbc8f240 (patch) | |
| tree | eaa1219476afef2e98a481aaa95c00d21436d86d /src/process.h | |
| parent | 6303aba12277fcac6a597908fb047560cf7c0c3e (diff) | |
| download | emacs-3fad2ad22ee508b6926c71fb87d53728bbc8f240.tar.gz emacs-3fad2ad22ee508b6926c71fb87d53728bbc8f240.zip | |
Add fd handling with callbacks to select, dbus needs it for async operation.
* src/dbusbind.c: Include process.h.
(dbus_fd_cb, xd_find_watch_fd, xd_toggle_watch)
(xd_read_message_1): New functions.
(xd_add_watch, xd_remove_watch): Call xd_find_watch_fd. Handle
watch for both read and write.
(Fdbus_init_bus): Also register xd_toggle_watch.
(Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
(Fdbus_method_error_internal, Fdbus_send_signal): Remove call
to dbus_connection_flush.
(xd_read_message): Move most of the code to xd_read_message_1.
Call xd_read_message_1 until status is COMPLETE.
* src/keyboard.c (readable_events, gobble_input): Remove DBUS code.
* src/process.c (gpm_wait_mask, max_gpm_desc): Remove.
(write_mask): New variable.
(max_input_desc): Renamed from max_keyboard_desc.
(fd_callback_info): New variable.
(add_read_fd, delete_read_fd, add_write_fd, delete_write_fd): New
functions.
(Fmake_network_process): FD_SET write_mask.
(deactivate_process): FD_CLR write_mask.
(wait_reading_process_output): Connecting renamed to Writeok.
check_connect removed. check_write is new. Remove references to
gpm. Use Writeok/check_write unconditionally (i.e. no #ifdef
NON_BLOCKING_CONNECT) instead of Connecting.
Loop over file descriptors and call callbacks in fd_callback_info
if file descriptor is ready for I/O.
(add_gpm_wait_descriptor): Just call add_keyboard_wait_descriptor.
(delete_gpm_wait_descriptor): Just call delete_keyboard_wait_descriptor.
(keyboard_bit_set): Use max_input_desc.
(add_keyboard_wait_descriptor, delete_keyboard_wait_descriptor): Remove
#ifdef subprocesses. Use max_input_desc.
(init_process): Initialize write_mask and fd_callback_info.
* src/process.h (add_read_fd, delete_read_fd, add_write_fd)
(delete_write_fd): Declare.
Diffstat (limited to 'src/process.h')
| -rw-r--r-- | src/process.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/process.h b/src/process.h index 562d888f93f..d6e842cfbbc 100644 --- a/src/process.h +++ b/src/process.h | |||
| @@ -192,5 +192,12 @@ extern void hold_keyboard_input (void); | |||
| 192 | extern void unhold_keyboard_input (void); | 192 | extern void unhold_keyboard_input (void); |
| 193 | extern int kbd_on_hold_p (void); | 193 | extern int kbd_on_hold_p (void); |
| 194 | 194 | ||
| 195 | typedef void (*fd_callback)(int fd, void *data, int for_read); | ||
| 196 | |||
| 197 | extern void add_read_fd (int fd, fd_callback func, void *data); | ||
| 198 | extern void delete_read_fd (int fd); | ||
| 199 | extern void add_write_fd (int fd, fd_callback func, void *data); | ||
| 200 | extern void delete_write_fd (int fd); | ||
| 201 | |||
| 195 | /* arch-tag: dffedfc4-d7bc-4b58-a26f-c16155449c72 | 202 | /* arch-tag: dffedfc4-d7bc-4b58-a26f-c16155449c72 |
| 196 | (do not change this comment) */ | 203 | (do not change this comment) */ |