interruptible_sleep_on_timeout()睡眠超时设定

功能:使进程睡眠一定时间

原型:

#include <linux/wait.h>
long interruptible_sleep_on_timeout(wait_queue_head_t *q, long timeout);

说明: 在 q 指向的等待队列上注册当前运行中的进程信息,并使调用的进程进入睡眠状态。如果未满足苏醒条件,即使没有调用 wake_up_interruptible() 函数,只要超过设定的 timeout 值,进程也会自动苏醒。

变量: q : 等待队列变量指针。 timeout : 依赖 Hz 的进程苏醒时间。2.6 内核中以 0.001s 为单位,2.4 内核中以 0.01s 为单位。 返回值: 进程唤醒时,取决于经历多少个 Hz 的时间,返回值的时间值为正数。

但现在出现一个这样的问题

interruptible_sleep_on_timeout(Wait_queue,6000) 在没有其他函数唤醒的情况下等待6s,但是这个函数会反复计数,比如等待10s后它会返回4s,相当于一直在这个函数上阻塞执行。

转载于:https://my.oschina.net/lvyi/blog/301860

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值