From e172af811a64e236a41c84279e7b5d3b60f3c64e Mon Sep 17 00:00:00 2001 From: Fred Fish Date: Sat, 16 Nov 1996 06:58:43 +0000 Subject: [PATCH] From Peter Schauer * procfs.c (wait_fd): Handle EINTR error return from poll by restarting the poll. * defs.h (PIDGET): Define a default version that just returns its argument unchanged. * inflow.c (terminal_init_inferior): Eliminate #ifdef of PIDGET and fold both alternatives into common code. (pass_signal): Use PIDGET for pid passed to kill(). --- gdb/ChangeLog | 11 +++++++++++ gdb/procfs.c | 17 ++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index bf45818bd7b..cb7b30df092 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +Fri Nov 15 15:34:18 1996 Fred Fish + + From Peter Schauer + * procfs.c (wait_fd): Handle EINTR error return from poll + by restarting the poll. + * defs.h (PIDGET): Define a default version that just + returns its argument unchanged. + * inflow.c (terminal_init_inferior): Eliminate #ifdef + of PIDGET and fold both alternatives into common code. + (pass_signal): Use PIDGET for pid passed to kill(). + Thu Nov 14 15:54:20 1996 Michael Meissner * utils.c (paddr,preg): Use a static variable initialized to 32 diff --git a/gdb/procfs.c b/gdb/procfs.c index f5e93fc5f9d..315110fa9e0 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -639,7 +639,16 @@ wait_fd () set_sigio_trap (); #ifndef LOSING_POLL - num_fds = poll (poll_list, num_poll_list, -1); + while (1) + { + num_fds = poll (poll_list, num_poll_list, -1); + if (num_fds > 0) + break; + if (num_fds < 0 && errno == EINTR) + continue; + print_sys_errmsg ("poll failed", errno); + error ("Poll failed, returned %d", num_fds); + } #else pi = current_procinfo; @@ -665,12 +674,6 @@ wait_fd () #ifndef LOSING_POLL - if (num_fds <= 0) - { - print_sys_errmsg ("poll failed\n", errno); - error ("Poll failed, returned %d", num_fds); - } - for (i = 0; i < num_poll_list && num_fds > 0; i++) { if ((poll_list[i].revents & (POLLPRI|POLLERR|POLLHUP|POLLNVAL)) == 0) -- 2.30.2