force at least a 1 tick delay if timeOut >0.0

This commit is contained in:
Marty Kraimer
2001-06-11 14:30:04 +00:00
parent c3cbf1bd2c
commit c6696c209f
2 changed files with 14 additions and 4 deletions

View File

@@ -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);

View File

@@ -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);