* ser-unix.c (hardwire_send_break) [HAVE_SGTTY]: Use select not usleep.
authorJim Kingdon <jkingdon@engr.sgi.com>
Sun, 8 Aug 1993 21:02:37 +0000 (21:02 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Sun, 8 Aug 1993 21:02:37 +0000 (21:02 +0000)
gdb/ChangeLog
gdb/ser-unix.c

index f4c1d76dfb70986cd5e1453d269632bc742a5a09..bb687295d73bf004fd78fca10835bfb2a56c8f99 100644 (file)
@@ -1,5 +1,7 @@
 Sun Aug  8 13:59:49 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
 
+       * ser-unix.c (hardwire_send_break) [HAVE_SGTTY]: Use select not usleep.
+
        * remote.c: Add comments about 'd', 'r', and unrecognized requests.
 
        * inflow.c (terminal_init_inferior): Don't muck with tty state if
index 9b67230a07ab8f80bb235ed5248244c8e0910db6..353657aff0736baa64ac2ddfc2b4dc8ad597f57c 100644 (file)
@@ -359,10 +359,20 @@ hardwire_send_break (scb)
 #endif
 
 #ifdef HAVE_SGTTY
-  status = ioctl (scb->fd, TIOCSBRK, 0);
-  usleep (250000);
-  status = ioctl (scb->fd, TIOCCBRK, 0);
-  return status;
+  {
+    struct timeval timeout;
+
+    status = ioctl (scb->fd, TIOCSBRK, 0);
+
+    /* Can't use usleep; it doesn't exist in BSD 4.2.  */
+    /* Note that if this select() is interrupted by a signal it will not wait
+       the full length of time.  I think that is OK.  */
+    timeout.tv_sec = 0;
+    timeout.tv_usec = 250000;
+    select (0, 0, 0, 0, &timeout);
+    status = ioctl (scb->fd, TIOCCBRK, 0);
+    return status;
+  }
 #endif  
 }