force at least a 1 tick delay if timeOut >0.0
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user