You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

65 lines
1.7 KiB

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(-)
diff --git a/term.c b/term.c
index b45ab3d..23afd4f 100644
--- 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 ) {