参照元†
- 仕事を実行する CPU を指定して、ワークキューに仕事を追加する。
- int cpu
- struct workqueue_struct *wq
- struct work_struct *work
返り値†
- int
- 仕事をキューに追加した場合は 1、
キューに追加しなかった場合は 0(既にキューに追加されているなど)
/**
* queue_work_on - queue work on specific cpu
* @cpu: CPU number to execute work on
* @wq: workqueue to use
* @work: work to queue
*
* Returns 0 if @work was already on a queue, non-zero otherwise.
*
* We queue the work to a specific CPU, the caller must ensure it
* can't go away.
*/
int
queue_work_on(int cpu, struct workqueue_struct *wq, struct work_struct *work)
{
int ret = 0;
if (!test_and_set_bit(WORK_STRUCT_PENDING, work_data_bits(work))) {
BUG_ON(!list_empty(&work->entry));
__queue_work(wq_per_cpu(wq, cpu), work);
ret = 1;
}
return ret;
}
EXPORT_SYMBOL_GPL(queue_work_on);
- GPL ライセンスのモジュールにのみシンボルを公開する。
コメント†