1. 原型
#define wait_event_interruptible_timeout(wq_head, condition, timeout) \
({ \
long __ret = timeout; \
might_sleep(); \
if (!___wait_cond_timeout(condition)) \
__ret = __wait_event_interruptible_timeout(wq_head, \
condition, timeout); \
__ret; \
})
2. 使用場景
睡眠到條件滿足或者超時退出睡眠狀態
3. 支持可中斷的睡眠,意味着可以發送信號給睡眠的進程,進程會對信號進行響應
4. 返回值解析
4.1 當返回值大於0時,表示返回的是剩余的時間(以jiffy為單位),條件滿足,也就是還未超時,條件已經達成了,被喚醒了
4.2 當返回值為0時,表示超時,自動喚醒,此時根據情況進行錯誤處理吧