[linux-audio-dev] microsleeping
Lee Revell
rlrevell at joe-job.com
Thu May 12 21:49:09 UTC 2005
On Thu, 2005-05-12 at 22:58 +0200, Tim Blechmann wrote:
> hi all..
>
> i'm trying to sleep for some very low time slices ... about 100 to 1000
> us ...
> but i can't get below about 1 ms ... are there any workarounds to sleep
> for very small time slices?
>
You can't sleep less than 1ms because that is the tick rate of the timer
interrupt. For now the only universal "solution" is to busy-wait.
If your soundcard's timer is supported by the ALSA timer API (currently
only emu10k1 and ymfpci), you can get very good resolution: 1 tick at
48000Hz is 21 usecs. Otherwise the ALSA timer resolution will only be
as good as the system timer.
> i tested nanosleep(), usleep() and select(0, 0, 0, 0, &timout) ...
The real solution, which is likely to end up in the mainline kernel, is
George Anzinger's high res timers patch:
http://sourceforge.net/projects/high-res-timers/
High res timers have been a hot topic on LKML lately.
Lee
More information about the Linux-audio-dev
mailing list