* mips-tdep.c (mips_gdbarch_init): Use Tag_GNU_MIPS_ABI_FP to
[deliverable/binutils-gdb.git] / gdb / event-loop.c
index 71e8d4d9096e55af0c60671e3a3d38c4d95e6174..c946ce48cc4f2ca3617df37c194a2b8e9bca9099 100644 (file)
@@ -1,5 +1,6 @@
 /* Event loop machinery for GDB, the GNU debugger.
-   Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2001, 2002, 2005, 2006, 2007
+   Free Software Foundation, Inc.
    Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
 
    This file is part of GDB.
@@ -16,8 +17,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA. */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA. */
 
 #include "defs.h"
 #include "event-loop.h"
@@ -36,6 +37,8 @@
 #include <errno.h>
 #include <sys/time.h>
 #include "exceptions.h"
+#include "gdb_assert.h"
+#include "gdb_select.h"
 
 typedef struct gdb_event gdb_event;
 typedef void (event_handler_func) (int);
@@ -133,6 +136,11 @@ event_queue;
 
 static unsigned char use_poll = USE_POLL;
 
+#ifdef USE_WIN32API
+#include <windows.h>
+#include <io.h>
+#endif
+
 static struct
   {
     /* Ptr to head of file handler list. */
@@ -688,11 +696,11 @@ handle_file_event (int event_file_desc)
                  /* 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);
+                   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);
+                   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);
+                   printf_unfiltered (_("Invalid or non-`poll'able fd %d\n"), file_ptr->fd);
                  file_ptr->error = 1;
                }
              else
@@ -706,7 +714,7 @@ handle_file_event (int event_file_desc)
            {
              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
@@ -769,12 +777,12 @@ gdb_wait_for_event (void)
       gdb_notifier.ready_masks[0] = gdb_notifier.check_masks[0];
       gdb_notifier.ready_masks[1] = gdb_notifier.check_masks[1];
       gdb_notifier.ready_masks[2] = gdb_notifier.check_masks[2];
-      num_found = select (gdb_notifier.num_fds,
-                         &gdb_notifier.ready_masks[0],
-                         &gdb_notifier.ready_masks[1],
-                         &gdb_notifier.ready_masks[2],
-                         gdb_notifier.timeout_valid
-                         ? &gdb_notifier.select_timeout : NULL);
+      num_found = gdb_select (gdb_notifier.num_fds,
+                             &gdb_notifier.ready_masks[0],
+                             &gdb_notifier.ready_masks[1],
+                             &gdb_notifier.ready_masks[2],
+                             gdb_notifier.timeout_valid
+                             ? &gdb_notifier.select_timeout : NULL);
 
       /* Clear the masks after an error from select. */
       if (num_found == -1)
@@ -817,9 +825,8 @@ gdb_wait_for_event (void)
                  file_event_ptr = create_file_event (file_ptr->fd);
                  async_queue_event (file_event_ptr, TAIL);
                }
+             file_ptr->ready_mask = (gdb_notifier.poll_fds + i)->revents;
            }
-
-         file_ptr->ready_mask = (gdb_notifier.poll_fds + i)->revents;
        }
 #else
       internal_error (__FILE__, __LINE__,
@@ -943,7 +950,7 @@ delete_async_signal_handler (async_signal_handler ** async_handler_ptr)
   else
     {
       prev_ptr = sighandler_list.first_handler;
-      while (prev_ptr->next_handler != (*async_handler_ptr) && prev_ptr)
+      while (prev_ptr && prev_ptr->next_handler != (*async_handler_ptr))
        prev_ptr = prev_ptr->next_handler;
       prev_ptr->next_handler = (*async_handler_ptr)->next_handler;
       if (sighandler_list.last_handler == (*async_handler_ptr))
This page took 0.024869 seconds and 4 git commands to generate.