1
我正試圖學習如何爲linux編寫可加載的內核模塊。我想知道是否有人能告訴我sleep_on
和wake_up
的功能是做什麼的?Linux:wake_up和sleep_on函數
在示例中,我在看&WaitQ
始終被傳遞到他們和
static DECLARE_WAIT_QUEUE_HEAD(WaitQ);
在模塊的頂部聲明。
我正試圖學習如何爲linux編寫可加載的內核模塊。我想知道是否有人能告訴我sleep_on
和wake_up
的功能是做什麼的?Linux:wake_up和sleep_on函數
在示例中,我在看&WaitQ
始終被傳遞到他們和
static DECLARE_WAIT_QUEUE_HEAD(WaitQ);
在模塊的頂部聲明。
如果內核中的任務到達想要使用資源的位置,並且它被告知the resource is currently used by another task
,它可以決定去睡覺,說wake me up when the resource is available again
。這基本上是與sleep_on和wake_up的交易。詳情請參閱此處:http://www.linuxtopia.org/online_books/Linux_Kernel_Module_Programming_Guide/x1032.html