diff options
author | Tejun Heo <tj@kernel.org> | 2013-03-12 22:30:04 +0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2013-03-12 22:30:04 +0400 |
commit | 75ccf5950f828d53aebfd3a852283a00abf2c5bf (patch) | |
tree | 3a2085d3deec15d600cfed31107164d92600e078 /include/linux/workqueue.h | |
parent | 8864b4e59f7945a636eeb27671f10486149be6e6 (diff) | |
download | linux-75ccf5950f828d53aebfd3a852283a00abf2c5bf.tar.xz |
workqueue: prepare flush_workqueue() for dynamic creation and destrucion of unbound pool_workqueues
Unbound pwqs (pool_workqueues) will be dynamically created and
destroyed with the scheduled unbound workqueue w/ custom attributes
support. This patch synchronizes pwq linking and unlinking against
flush_workqueue() so that its operation isn't disturbed by pwqs coming
and going.
Linking and unlinking a pwq into wq->pwqs is now protected also by
wq->flush_mutex and a new pwq's work_color is initialized to
wq->work_color during linking. This ensures that pwqs changes don't
disturb flush_workqueue() in progress and the new pwq's work coloring
stays in sync with the rest of the workqueue.
flush_mutex during unlinking isn't strictly necessary but it's simpler
to do it anyway.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Diffstat (limited to 'include/linux/workqueue.h')
0 files changed, 0 insertions, 0 deletions