Downgrade fatal to warning in linux_async
authorGary Benson <gbenson@redhat.com>
Wed, 6 Aug 2014 10:57:14 +0000 (11:57 +0100)
committerGary Benson <gbenson@redhat.com>
Thu, 28 Aug 2014 14:06:46 +0000 (15:06 +0100)
This commit downgrades a fatal error to a warning in linux_async.
linux_async is called from two different places in gdbserver:

 Via target_async from handle_accept_event.  The argument
   is always zero, so the warning will never be printed here.

 Via start_non_stop from handle_general_set.  This prints
   its own error message to stderr on failure, which will
   be preceded by the warning if it is emitted.

gdb/gdbserver/ChangeLog:

* linux-low.c (linux_async): Replace fatal with warning.
Tidy up and return.
(linux_start_non_stop): Return -1 if linux_async failed.

gdb/gdbserver/ChangeLog
gdb/gdbserver/linux-low.c

index ec3fc93a95f46b761c19583e232d1d6192d87e62..c3e4c935f066c4ef9678e000a4e8db71d9619698 100644 (file)
@@ -1,3 +1,9 @@
+2014-08-28  Gary Benson  <gbenson@redhat.com>
+
+       * linux-low.c (linux_async): Replace fatal with warning.
+       Tidy up and return.
+       (linux_start_non_stop): Return -1 if linux_async failed.
+
 2014-08-28  Gary Benson  <gbenson@redhat.com>
 
        * linux-x86-low.c (i386_dr_low_set_addr): Replace check with
index f8b3e68ff2c13daec1a34a0df5a8d1a4ccff0875..ec3260e1bc897c9363acd08830c24de1e9f3e4da 100644 (file)
@@ -5107,7 +5107,14 @@ linux_async (int enable)
       if (enable)
        {
          if (pipe (linux_event_pipe) == -1)
-           fatal ("creating event pipe failed.");
+           {
+             linux_event_pipe[0] = -1;
+             linux_event_pipe[1] = -1;
+             sigprocmask (SIG_UNBLOCK, &mask, NULL);
+
+             warning ("creating event pipe failed.");
+             return previous;
+           }
 
          fcntl (linux_event_pipe[0], F_SETFL, O_NONBLOCK);
          fcntl (linux_event_pipe[1], F_SETFL, O_NONBLOCK);
@@ -5140,6 +5147,10 @@ linux_start_non_stop (int nonstop)
 {
   /* Register or unregister from event-loop accordingly.  */
   linux_async (nonstop);
+
+  if (target_is_async_p () != (nonstop != 0))
+    return -1;
+
   return 0;
 }