From c67d0a44eff3f5f948e2f6d0ad8454ad3d57b68c Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Fri, 2 Jun 2000 14:48:13 +0000 Subject: [PATCH] TakeTimeout: make ticks at least 1 --- src/libCom/osi/os/vxWorks/osdSem.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/libCom/osi/os/vxWorks/osdSem.c b/src/libCom/osi/os/vxWorks/osdSem.c index 0f4f6be5d..dc588d54c 100644 --- a/src/libCom/osi/os/vxWorks/osdSem.c +++ b/src/libCom/osi/os/vxWorks/osdSem.c @@ -54,10 +54,10 @@ semTakeStatus semBinaryTakeTimeout( int status; int ticks; ticks = (int)(timeOut * (double)sysClkRateGet()); + if(ticks<=0) ticks = 1; status = semTake((SEM_ID)id,ticks); if(status==OK) return(semTakeOK); if(errno==S_objLib_OBJ_TIMEOUT) return(semTakeTimeout); - if(ticks<=0) return(semTakeTimeout); return(semTakeError); } @@ -109,9 +109,12 @@ semTakeStatus semMutexTakeTimeout( semMutexId id, double timeOut) { int status; - status = semTake((SEM_ID)id,NO_WAIT); + int ticks; + ticks = (int)(timeOut * (double)sysClkRateGet()); + if(ticks<=0) ticks = 1; + status = semTake((SEM_ID)id,ticks); if(status==OK) return(semTakeOK); - if(errno==S_objLib_OBJ_UNAVAILABLE) return(semTakeTimeout); + if(errno==S_objLib_OBJ_TIMEOUT) return(semTakeTimeout); return(semTakeError); }