{
(new_poll_fds + j)->fd = (gdb_notifier.poll_fds + i)->fd;
(new_poll_fds + j)->events = (gdb_notifier.poll_fds + i)->events;
- (new_poll_fds + j)->revents = (gdb_notifier.poll_fds + i)->revents;
+ (new_poll_fds + j)->revents
+ = (gdb_notifier.poll_fds + i)->revents;
j++;
}
}
int mask;
#ifdef HAVE_POLL
int error_mask;
- int error_mask_returned;
#endif
int event_file_desc = data.integer;
if (use_poll)
{
#ifdef HAVE_POLL
+ /* POLLHUP means EOF, but can be combined with POLLIN to
+ signal more data to read. */
error_mask = POLLHUP | POLLERR | POLLNVAL;
- mask = (file_ptr->ready_mask & file_ptr->mask) |
- (file_ptr->ready_mask & error_mask);
- error_mask_returned = mask & error_mask;
+ mask = file_ptr->ready_mask & (file_ptr->mask | error_mask);
- if (error_mask_returned != 0)
+ if ((mask & (POLLERR | POLLNVAL)) != 0)
{
/* Work in progress. We may need to tell somebody
what kind of error we had. */
- if (error_mask_returned & POLLHUP)
- printf_unfiltered (_("Hangup detected on fd %d\n"), file_ptr->fd);
- if (error_mask_returned & POLLERR)
- printf_unfiltered (_("Error detected on fd %d\n"), file_ptr->fd);
- if (error_mask_returned & POLLNVAL)
- printf_unfiltered (_("Invalid or non-`poll'able fd %d\n"), file_ptr->fd);
+ if (mask & POLLERR)
+ printf_unfiltered (_("Error detected on fd %d\n"),
+ file_ptr->fd);
+ if (mask & POLLNVAL)
+ printf_unfiltered (_("Invalid or non-`poll'able fd %d\n"),
+ file_ptr->fd);
file_ptr->error = 1;
}
else
{
if (file_ptr->ready_mask & GDB_EXCEPTION)
{
- printf_unfiltered (_("Exception condition detected on fd %d\n"), file_ptr->fd);
+ printf_unfiltered (_("Exception condition detected "
+ "on fd %d\n"), file_ptr->fd);
file_ptr->error = 1;
}
else
PROC is the function to call with CLIENT_DATA argument
whenever the handler is invoked. */
async_signal_handler *
-create_async_signal_handler (sig_handler_func * proc, gdb_client_data client_data)
+create_async_signal_handler (sig_handler_func * proc,
+ gdb_client_data client_data)
{
async_signal_handler *async_handler_ptr;
prev_ptr = sighandler_list.first_handler;
while (prev_ptr && prev_ptr->next_handler != (*async_handler_ptr))
prev_ptr = prev_ptr->next_handler;
+ gdb_assert (prev_ptr);
prev_ptr->next_handler = (*async_handler_ptr)->next_handler;
if (sighandler_list.last_handler == (*async_handler_ptr))
sighandler_list.last_handler = prev_ptr;
if (async_event_handler_list.first_handler == *async_handler_ptr)
{
- async_event_handler_list.first_handler = (*async_handler_ptr)->next_handler;
+ async_event_handler_list.first_handler
+ = (*async_handler_ptr)->next_handler;
if (async_event_handler_list.first_handler == NULL)
async_event_handler_list.last_handler = NULL;
}
prev_ptr = async_event_handler_list.first_handler;
while (prev_ptr && prev_ptr->next_handler != *async_handler_ptr)
prev_ptr = prev_ptr->next_handler;
+ gdb_assert (prev_ptr);
prev_ptr->next_handler = (*async_handler_ptr)->next_handler;
if (async_event_handler_list.last_handler == (*async_handler_ptr))
async_event_handler_list.last_handler = prev_ptr;