linux – clock_nanosleep受adjtime和NTP的影响吗?
通常CLOCK_MONOTONIC_RAW用于获取不受NTP或adjtime()影响的时钟.但是clock_nanosleep()不支持CLOCK_MONOTONIC_RAW并且无论如何都试图使用它将导致返回代码95不支持操作(内核4.6.0).
clock_nanosleep()会以某种方式考虑这些时钟调整,还是会影响睡眠时间? 如果需要一个不受时钟调整影响的休眠时间,有哪些替代方案? 解决方法
CLOCK_MONOTONIC_RAW从未支持clock_nanosleep(),因为它在
Linux 2.6.28中是
was introduced.这也是
explicitly fixed在2.6.32
because of oopses中没有这个支持.之后代码被重构了几次,但仍然没有对clock_nanosleep()中的CLOCK_MONOTONIC_RAW的支持,我无法找到任何关于为什么是那.
至少,有一个明确禁用此功能并通过所有评论的补丁这一事实告诉我们,对于内核开发人员来说,它看起来不是一个大问题.所以,目前(4.7)the only things 说到调整,因为already noted by Rich CLOCK_MONOTONIC仅根据时钟的性质进行速率调整.发生这种情况是因为 至于替代方案,我认为没有. 作为一个不相关的附注,有一个有趣的观察结果,如果你调用clock_nanosleep()作为相对间隔(不是TIMER_ABSTIME),那么 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |