summaryrefslogtreecommitdiff
path: root/include/linux/workqueue.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2013-03-12 22:30:04 +0400
committerTejun Heo <tj@kernel.org>2013-03-12 22:30:04 +0400
commit75ccf5950f828d53aebfd3a852283a00abf2c5bf (patch)
tree3a2085d3deec15d600cfed31107164d92600e078 /include/linux/workqueue.h
parent8864b4e59f7945a636eeb27671f10486149be6e6 (diff)
downloadlinux-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