linux-2.6.33/insert_work()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#n259db07]
#backlinks
*説明 [#m3e32bf5]
-パス: [[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]
終了行:
*参照元 [#n259db07]
#backlinks
*説明 [#m3e32bf5]
-パス: [[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]
ページ名: