| From 84fdd943aee9fdf199f6668145246d3021527c29 Mon Sep 17 00:00:00 2001 |
| From: Rosen Penev <rosenp@gmail.com> |
| Date: Sun, 11 Oct 2020 22:10:45 -0700 |
| Subject: [PATCH] remove usleep |
| |
| usleep is removed in POSIX 2008. |
| |
| Signed-off-by: Rosen Penev <rosenp@gmail.com> |
| --- |
| term.c | 14 ++++++++++++-- |
| 1 file changed, 12 insertions(+), 2 deletions(-) |
| |
| --- a/term.c |
| +++ b/term.c |
| @@ -33,6 +33,7 @@ |
| #include <stdio.h> |
| #include <string.h> |
| #include <errno.h> |
| +#include <time.h> |
| #include <unistd.h> |
| #include <termios.h> |
| #ifdef USE_FLOCK |
| @@ -1588,6 +1589,8 @@ term_drain(int fd) |
| |
| rval = 0; |
| |
| + struct timespec s; |
| + |
| do { /* dummy */ |
| |
| r = term_find(fd); |
| @@ -1614,7 +1617,10 @@ term_drain(int fd) |
| the port is immediately reconfigured, even after a |
| drain. (I guess, drain does not wait for everything to |
| actually be transitted on the wire). */ |
| - if ( DRAIN_DELAY ) usleep(DRAIN_DELAY); |
| + if ( DRAIN_DELAY ) { |
| + struct timespec d = {0, DRAIN_DELAY * 1000}; |
| + nanosleep(&d, &s); |
| + } |
| |
| } while (0); |
| |
| @@ -1627,6 +1633,7 @@ int |
| term_fake_flush(int fd) |
| { |
| struct termios tio; |
| + struct timespec s; |
| int rval, i, r; |
| |
| rval = 0; |
| @@ -1666,7 +1673,10 @@ term_fake_flush(int fd) |
| break; |
| } |
| /* see comment in term_drain */ |
| - if ( DRAIN_DELAY ) usleep(DRAIN_DELAY); |
| + if ( DRAIN_DELAY ) { |
| + struct timespec d = {0, DRAIN_DELAY * 1000}; |
| + nanosleep(&d, &s); |
| + } |
| /* Reset flow-control to original setting. */ |
| r = tcsetattr(fd, TCSANOW, &term.currtermios[i]); |
| if ( r < 0 ) { |