void
epicsThreadSleep (double seconds)
{
rtems_status_code sc;
rtems_interval delay;
extern double rtemsTicksPerSecond_double;
if (seconds <= 0.0) {
delay = 0;
}
else {
/*
* Low-overhead approximation of ceil()
*/
delay = seconds * rtemsTicksPerSecond_double + 0.999999999;
}
sc = rtems_task_wake_after (delay);
if(sc != RTEMS_SUCCESSFUL)
errlogPrintf("epicsThreadSleep: %s\n", rtems_status_text (sc));
}