aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-08-08 21:02:37 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-08-08 21:02:37 +0000
commit95a98b5efa7b4ca7bffb156f1af26235611a3923 (patch)
tree99539712ef92faeae5ef2c294ff01bd62b9f02ef
parent3da5198c07ed520e12b734e1ca76d521139c28f2 (diff)
downloadgdb-95a98b5efa7b4ca7bffb156f1af26235611a3923.zip
gdb-95a98b5efa7b4ca7bffb156f1af26235611a3923.tar.gz
gdb-95a98b5efa7b4ca7bffb156f1af26235611a3923.tar.bz2
* ser-unix.c (hardwire_send_break) [HAVE_SGTTY]: Use select not usleep.
-rw-r--r--gdb/ChangeLog2
-rw-r--r--gdb/ser-unix.c18
2 files changed, 16 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f4c1d76..bb68729 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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
diff --git a/gdb/ser-unix.c b/gdb/ser-unix.c
index 9b67230..353657a 100644
--- a/gdb/ser-unix.c
+++ b/gdb/ser-unix.c
@@ -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
}