diff options
author | Tejun Heo <tj@kernel.org> | 2010-06-29 04:07:13 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-06-29 04:07:13 -0400 |
commit | 18aa9effad4adb2c1efe123af4eb24fec9f59b30 (patch) | |
tree | 76975b37ae0ef1ebf460aaab68359ed7a12fe37a /include/linux/workqueue.h | |
parent | 7a22ad757ec75186ad43a5b4670fa7423ee8f480 (diff) |
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/workqueue.h')
-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 0a7814131e66..07cf5e5f91cb 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; } | |||
225 | enum { | 225 | enum { |
226 | WQ_FREEZEABLE = 1 << 0, /* freeze during suspend */ | 226 | WQ_FREEZEABLE = 1 << 0, /* freeze during suspend */ |
227 | WQ_SINGLE_CPU = 1 << 1, /* only single cpu at a time */ | 227 | WQ_SINGLE_CPU = 1 << 1, /* only single cpu at a time */ |
228 | WQ_NON_REENTRANT = 1 << 2, /* guarantee non-reentrance */ | ||
228 | }; | 229 | }; |
229 | 230 | ||
230 | extern struct workqueue_struct * | 231 | extern struct workqueue_struct * |