2012-08-18 20 views
2

对于像udelay在linux/delay.h中可以在用户空间中使用的任何建议吗?微秒用户空间忙等待循环

从用户空间,我想生成事件每10秒的mircosconds。准确性不是非常重要,但我希望尽可能接近它。像usleep这样的事情不起作用,因为上下文切换开销。现在我有一个忙等待循环,它使用带有CLOCK_MONOTONIC时钟的clock_gettime,它不断地将当前时间与启动循环之前的时间进行比较,并在经过了几微秒后返回。它比使用usleep更好,但是如果不编写内核代码(或切换到实时linux),我可以更好吗?谢谢。

回答

1

select(2)超时,没有FD应该是一个体面的选择。请记得在每次调用之前初始化超时。

+0

这和使用像usleep这样的调用不一样吗?不选择()让进程进入休眠状态?我需要一个忙等待循环。 – Neal 2012-08-19 02:58:23