参照元†
- 仕事を頼んでおいて、あとで実行してもらうための機構。
多少遅れても良い処理、いつ実行しても良い処理を実行するときに便利。
- ワークキューの使い方
- ワークキューを作る
- 既に Linux システムがワークキューを持っている。
システムのワークキューに仕事をお願いする場合は、
自前のワークキューを作る必要はない。
- 仕事を作る
- ワークキューに仕事を追加する
- 仕事はいつか実行される
使い方
static struct workqueue_struct *wq;
void init_something()
{
wq = create_workqueue("my_workqueue");
...
}
static DECLARE_WORK(work_a, work_func_a);
void work_func_a(struct work_struct *work)
{
//do something...
}
void do_something()
{
queue_work(wq, &work_a);
}
- ワークキューに仕事を追加する。仕事はいつか実行される。
関係モジュール†
- 仕事を初期化する。
- 変数宣言時に初期化する場合はこちらが便利。
- 関数内などのコード中で初期化する場合はこちらが便利。
- ワークキューに仕事を追加する。
仕事はいつか実行される。
コメント†