From c6696c209f1a987f71af9e71d9a8f666a7c368e7 Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Mon, 11 Jun 2001 14:30:04 +0000 Subject: [PATCH] force at least a 1 tick delay if timeOut >0.0 --- src/libCom/osi/os/vxWorks/osdEvent.c | 9 +++++++-- src/libCom/osi/os/vxWorks/osdMutex.c | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/libCom/osi/os/vxWorks/osdEvent.c b/src/libCom/osi/os/vxWorks/osdEvent.c index 0b2061f10..36cc3f41c 100644 --- a/src/libCom/osi/os/vxWorks/osdEvent.c +++ b/src/libCom/osi/os/vxWorks/osdEvent.c @@ -41,8 +41,13 @@ epicsEventWaitStatus epicsEventWaitWithTimeout( { int status; int ticks; - ticks = (int)(timeOut * (double)sysClkRateGet()); - if(ticks<=0) ticks = 1; + + if(timeOut<=0.0) { + ticks = 0; + } else { + ticks = timeOut*sysClkRateGet(); + if(ticks<=0) ticks = 1; + } status = semTake((SEM_ID)id,ticks); if(status==OK) return(epicsEventWaitOK); if(errno==S_objLib_OBJ_TIMEOUT) return(epicsEventWaitTimeout); diff --git a/src/libCom/osi/os/vxWorks/osdMutex.c b/src/libCom/osi/os/vxWorks/osdMutex.c index e1e2828c3..72b7c5829 100644 --- a/src/libCom/osi/os/vxWorks/osdMutex.c +++ b/src/libCom/osi/os/vxWorks/osdMutex.c @@ -35,8 +35,13 @@ epicsMutexLockStatus epicsMutexLockWithTimeout( { int status; int ticks; - ticks = (int)(timeOut * (double)sysClkRateGet()); - if(ticks<=0) ticks = 1; + + if(timeOut<=0.0) { + ticks = 0; + } else { + ticks = timeOut*sysClkRateGet(); + if(ticks<=0) ticks = 1; + } status = semTake((SEM_ID)id,ticks); if(status==OK) return(epicsMutexLockOK); if(errno==S_objLib_OBJ_TIMEOUT) return(epicsMutexLockTimeout);