From 84fdd943aee9fdf199f6668145246d3021527c29 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sun, 11 Oct 2020 22:10:45 -0700 Subject: [PATCH] remove usleep usleep is removed in POSIX 2008. Signed-off-by: Rosen Penev --- term.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) --- a/term.c +++ b/term.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #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 ) {