From 83cb77131d2dbede7b1d37f77fdb42618eb561d2 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Thu, 15 Feb 2001 21:10:21 +0000 Subject: [PATCH] proper rounding improves delay accuracy --- src/libCom/osi/os/WIN32/osdEvent.c | 2 +- src/libCom/osi/os/WIN32/osdThread.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libCom/osi/os/WIN32/osdEvent.c b/src/libCom/osi/os/WIN32/osdEvent.c index 5feae1c0b..db703c565 100644 --- a/src/libCom/osi/os/WIN32/osdEvent.c +++ b/src/libCom/osi/os/WIN32/osdEvent.c @@ -142,7 +142,7 @@ epicsShareFunc epicsEventWaitStatus epicsShareAPI epicsEventWaitWithTimeout ( tmo = 0u; } else { - tmo = ( DWORD ) ( timeOut * mSecPerSecOsdSem ); + tmo = ( DWORD ) ( ( timeOut * mSecPerSecOsdSem ) + 0.5 ); } status = WaitForSingleObject ( pSem->handle, tmo ); if ( status == WAIT_OBJECT_0 ) { diff --git a/src/libCom/osi/os/WIN32/osdThread.c b/src/libCom/osi/os/WIN32/osdThread.c index c8dae5cb3..841e7789c 100644 --- a/src/libCom/osi/os/WIN32/osdThread.c +++ b/src/libCom/osi/os/WIN32/osdThread.c @@ -481,7 +481,7 @@ epicsShareFunc int epicsShareAPI epicsThreadIsSuspended (epicsThreadId id) epicsShareFunc void epicsShareAPI epicsThreadSleep (double seconds) { static const double mSecPerSec = 1000; - DWORD milliSecDelay = (DWORD) (seconds * mSecPerSec); + DWORD milliSecDelay = (DWORD) ( (seconds * mSecPerSec) + 0.5 ); Sleep (milliSecDelay); }