diff --git a/src/libCom/osi/os/vxWorks/osdThread.c b/src/libCom/osi/os/vxWorks/osdThread.c index 2983cbf9f..7ee6e7a84 100644 --- a/src/libCom/osi/os/vxWorks/osdThread.c +++ b/src/libCom/osi/os/vxWorks/osdThread.c @@ -234,8 +234,15 @@ int epicsThreadIsSuspended(epicsThreadId id) void epicsThreadSleep(double seconds) { STATUS status; + int ticks; - status = taskDelay((int)(seconds*sysClkRateGet())); + if(seconds<=0.0) { + ticks = 0; + } else { + ticks = seconds*sysClkRateGet(); + if(ticks<=0) ticks = 1; + } + status = taskDelay(ticks); if(status) errlogPrintf(0,"epicsThreadSleep\n"); }