From 647c5b37ef76efdd5d119e88a9907dca91623381 Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Sun, 14 May 2023 15:42:00 -0500 Subject: [PATCH] Fix hl_usleep again to undo prior fix Fix hl_usleep to not sleep if 1ms or less is called for -- speeds things up on Windows dramatically --- src/serial.c | 2 +- src/sleep.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/serial.c b/src/serial.c index 214358cc8..4ce4baba0 100644 --- a/src/serial.c +++ b/src/serial.c @@ -759,7 +759,7 @@ int HAMLIB_API serial_flush(hamlib_port_t *p) timeout_save = p->timeout; timeout_retry_save = p->timeout_retry; - p->timeout = 1; + p->timeout = 0; p->timeout_retry = 0; do diff --git a/src/sleep.c b/src/sleep.c index 3e9ff67a1..7a7b19a43 100644 --- a/src/sleep.c +++ b/src/sleep.c @@ -52,6 +52,8 @@ extern "C" { int hl_usleep(rig_useconds_t usec) { int retval = 0; + //rig_debug(RIG_DEBUG_ERR, "%s: usec=%ld\n", __func__, usec); + if (usec <= 1000) return 0; // dont' sleep if only 1ms is requested -- speeds things up on Windows while (usec > 1000000) { @@ -63,7 +65,7 @@ int hl_usleep(rig_useconds_t usec) #ifdef HAVE_NANOSLEEP struct timespec t, tleft; t.tv_sec = usec/1e6; - t.tv_nsec = (usec - (t.tv_sec*1e6)) / 1e3; + t.tv_nsec = (usec - (t.tv_sec*1e6)) * 1e3; return nanosleep(&t, &tleft); #else return usleep(usec);