aboutsummaryrefslogtreecommitdiffstats
path: root/src/keyboard.c
diff options
context:
space:
mode:
authorJan D2010-09-26 18:20:01 +0200
committerJan D2010-09-26 18:20:01 +0200
commit3fad2ad22ee508b6926c71fb87d53728bbc8f240 (patch)
treeeaa1219476afef2e98a481aaa95c00d21436d86d /src/keyboard.c
parent6303aba12277fcac6a597908fb047560cf7c0c3e (diff)
downloademacs-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/keyboard.c')
-rw-r--r--src/keyboard.c11
1 files changed, 0 insertions, 11 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 50cd49e54cd..1be6c2aad9d 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -3522,12 +3522,6 @@ restore_getcjmp (jmp_buf temp)
3522static int 3522static int
3523readable_events (int flags) 3523readable_events (int flags)
3524{ 3524{
3525#ifdef HAVE_DBUS
3526 /* Check whether a D-Bus message has arrived. */
3527 if (xd_pending_messages () > 0)
3528 return 1;
3529#endif /* HAVE_DBUS */
3530
3531 if (flags & READABLE_EVENTS_DO_TIMERS_NOW) 3525 if (flags & READABLE_EVENTS_DO_TIMERS_NOW)
3532 timer_check (1); 3526 timer_check (1);
3533 3527
@@ -6877,11 +6871,6 @@ get_input_pending (int *addr, int flags)
6877void 6871void
6878gobble_input (int expected) 6872gobble_input (int expected)
6879{ 6873{
6880#ifdef HAVE_DBUS
6881 /* Read D-Bus messages. */
6882 xd_read_queued_messages ();
6883#endif /* HAVE_DBUS */
6884
6885#ifdef SIGIO 6874#ifdef SIGIO
6886 if (interrupt_input) 6875 if (interrupt_input)
6887 { 6876 {