From a0e4aeba1ed3126cfb5f6f7db773f66034b6fc76 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Fri, 18 May 2001 16:31:07 +0000 Subject: [PATCH] round hibernation delays greater than zero but less than 1mS to 1mS --- src/libCom/osi/os/WIN32/osdEvent.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/libCom/osi/os/WIN32/osdEvent.c b/src/libCom/osi/os/WIN32/osdEvent.c index b1ae064de..f65b4e623 100644 --- a/src/libCom/osi/os/WIN32/osdEvent.c +++ b/src/libCom/osi/os/WIN32/osdEvent.c @@ -109,7 +109,7 @@ epicsShareFunc void epicsShareAPI epicsEventSignal (epicsEventId id) } /* - * epicsEventLock () + * epicsEventWait () */ epicsShareFunc epicsEventWaitStatus epicsShareAPI epicsEventWait (epicsEventId id) { @@ -136,14 +136,17 @@ epicsShareFunc epicsEventWaitStatus epicsShareAPI epicsEventWaitWithTimeout ( DWORD status; DWORD tmo; - if ( timeOut >= INFINITE / mSecPerSec ) { - tmo = INFINITE - 1; - } - else if ( timeOut < 0.0 ) { + if ( timeOut <= 0.0 ) { tmo = 0u; } + else if ( timeOut >= INFINITE / mSecPerSec ) { + tmo = INFINITE - 1; + } else { tmo = ( DWORD ) ( ( timeOut * mSecPerSec ) + 0.5 ); + if ( tmo == 0 ) { + tmo = 1; + } } status = WaitForSingleObject ( pSem->handle, tmo ); if ( status == WAIT_OBJECT_0 ) {