*参照元 [#n259db07]
#backlinks

*説明 [#m3e32bf5]
-パス: [[linux-2.6.33/]]
-パス: [[linux-2.6.33/kernel/workqueue.c]]

-FIXME: これは何?
--説明


**引数 [#if636949]
-struct cpu_workqueue_struct *cwq
--
--[[linux-2.6.33/cpu_workqueue_struct]]
-struct work_struct *work
--
--実行する仕事。
--[[linux-2.6.33/work_struct]]
-struct list_head *head
--
--[[linux-2.6.33/list_head]]


**返り値 [#sce0cae2]
-なし


**参考 [#gacb8d4a]


*実装 [#eec0d978]
 static void insert_work(struct cpu_workqueue_struct *cwq,
 			struct work_struct *work, struct list_head *head)
 {
 	trace_workqueue_insertion(cwq->thread, work);
 
-
--[[linux-2.6.33/trace_workqueue_insertion]]

 	set_wq_data(work, cwq);
-
--[[linux-2.6.33/set_wq_data()]]

 	/*
 	 * Ensure that we get the right work->data if we see the
 	 * result of list_add() below, see try_to_grab_pending().
 	 */
 	smp_wmb();
 	list_add_tail(&work->entry, head);
-
--[[linux-2.6.33/smp_wmb()]]
-
--[[linux-2.6.33/list_add_tail()]]

 	wake_up(&cwq->more_work);
-
--[[linux-2.6.33/wake_up()]]

 }


*コメント [#c9c198b1]

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