Re: nanosleep() accuracy

From: Jan Engelhardt
Date: Fri Aug 17 2007 - 03:54:59 EST



On Aug 17 2007 11:44, GolovaSteek wrote:
>> How do you measure this?
>> If you want to have something done every 300 microseconds, you must not
>> sleep for 300 microseconds in each iteration, because you'd accumulate
>> errors. Use a periodic timer or use the current time to compute how long
>> to sleep in each iteration. Take a look how cyclictest does it.
>
>no. I just want my programm go to sleep sometimes and wake up in correct time.

Would it be acceptable to use an optimistic strategy, like the one below?

Let's say that the following tasks happen at each time: A at 0, B at 300, C at
600, D at 900, E at 1200, F at 1500. Assume sleeping takes 500 Âs.
Then B and C could be run at 500, D at 1000 and E,F at 1500.


Jan
--