*参照元 [#mc513562]
#backlinks

*説明 [#b8c214c6]
-パス: [[linux-2.6.33/include/linux/wait.h]]

-FIXME: これは何?
-イベントが発生するまでタスクをスリープさせる。
-イベントが発生するまでタスクをスリープさせるマクロ。
--この関数が返ってくるのは下記の場合である。
---他のタスクから wakeup され、引数に指定した条件が真であったとき。
---シグナルに割り込まれたとき。
---※他にもあるかも知れない。


**引数 [#n187632a]
-wait_queue_head_t *wq
--タスクが待機するキューを指定する。
--[[linux-2.6.33/wait_queue_head_t]]
-condition
--待ち受ける条件を指定する。この条件が真になるまで待つ。
--指定した式は if () の条件式として評価される(例: (a > 0) など。)


**返り値 [#o738d98d]
-int
--成功した場合は 0 を返す。失敗した場合は負のエラー値を返す。
--例えばシグナルに割り込まれた場合は -ERESTARTSYS が返る。


**参考 [#pbd7cd69]


*実装 [#t4e3a9dc]
 /**
  * wait_event_interruptible - sleep until a condition gets true
  * @wq: the waitqueue to wait on
  * @condition: a C expression for the event to wait for
  *
  * The process is put to sleep (TASK_INTERRUPTIBLE) until the
  * @condition evaluates to true or a signal is received.
  * The @condition is checked each time the waitqueue @wq is woken up.
  *
  * wake_up() has to be called after changing any variable that could
  * change the result of the wait condition.
  *
  * The function will return -ERESTARTSYS if it was interrupted by a
  * signal and 0 if @condition evaluated to true.
  */
 #define wait_event_interruptible(wq, condition)				\
 ({									\
 	int __ret = 0;							\
 	if (!(condition))						\
 		__wait_event_interruptible(wq, condition, __ret);	\
-
--[[linux-2.6.33/__wait_event_interruptible()]]

 	__ret;								\
 })

*コメント [#b75c8c5e]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS