linux內核中的wait_event_interruptible_timeout接口解析


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時,表示超時,自動喚醒,此時根據情況進行錯誤處理吧

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM