diff options
author | Tejun Heo <tj@kernel.org> | 2010-06-29 10:07:13 +0200 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-06-29 10:07:13 +0200 |
commit | 18aa9effad4adb2c1efe123af4eb24fec9f59b30 (patch) | |
tree | 76975b37ae0ef1ebf460aaab68359ed7a12fe37a /include/linux | |
parent | 7a22ad757ec75186ad43a5b4670fa7423ee8f480 (diff) | |
download | op-kernel-dev-18aa9effad4adb2c1efe123af4eb24fec9f59b30.zip op-kernel-dev-18aa9effad4adb2c1efe123af4eb24fec9f59b30.tar.gz |
workqueue: implement WQ_NON_REENTRANT
With gcwq managing all the workers and work->data pointing to the last
gcwq it was on, non-reentrance can be easily implemented by checking
whether the work is still running on the previous gcwq on queueing.
Implement it.
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/workqueue.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 0a78141..07cf5e5 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -225,6 +225,7 @@ static inline unsigned int work_static(struct work_struct *work) { return 0; } enum { WQ_FREEZEABLE = 1 << 0, /* freeze during suspend */ WQ_SINGLE_CPU = 1 << 1, /* only single cpu at a time */ + WQ_NON_REENTRANT = 1 << 2, /* guarantee non-reentrance */ }; extern struct workqueue_struct * |