WaitQueue
Rev.6を表示中。最新版はこちら。
Sleep,Blockするプロセスをつないでおくリスト。Sleep要因によってそれぞれWaitQueueがある。WaitQueueにつないだプロセスは、wake_upxxx()でWaitQueueを指定することで、RUNNING状態に戻る。
WaitQueueは使わなくてもBlockは可能。
WaitQueueの構造
wait_queue_head_t
+-----------+
| lock | wait_queue_t
| task_list | ----> +---------+ ----> +---------+
+-----------+ | | | |
| func | | |
| | | |
[関連ルーチン]
init_waitqueue_head()
WaitQueue(wait_queue_head)を初期化する。
add_wait_queue()
指定WaitQueueにエントリを追加する。
DECLARE_WAITQUEUE()
WaitQueueに積むエントリ(wait_queue_t)を初期化する。
DEFINE_WAIT()
WaitQueueに積むエントリ(wait_queue_t)を初期化する。
DECLARE_WAITQUEUE()との違いはWakeupすると、WaitQueueから自動的にエントリが削除される点。
DECLARE_WAITQUEUE()との違いはWakeupすると、WaitQueueから自動的にエントリが削除される点。
[関連ページ]
プロセスのBlockとWakeup