workqueue: wake regular worker if need_more_worker() when rescuer leave the pool
We don't need to wake up regular worker when nr_running==1, so need_more_worker() is sufficient here. And need_more_worker() gives us better readability due to the name of "keep_working()" implies the rescuer should keep working now but the rescuer is actually leaving. Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
@@ -2313,11 +2313,11 @@ repeat:
|
|||||||
put_pwq(pwq);
|
put_pwq(pwq);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Leave this pool. If keep_working() is %true, notify a
|
* Leave this pool. If need_more_worker() is %true, notify a
|
||||||
* regular worker; otherwise, we end up with 0 concurrency
|
* regular worker; otherwise, we end up with 0 concurrency
|
||||||
* and stalling the execution.
|
* and stalling the execution.
|
||||||
*/
|
*/
|
||||||
if (keep_working(pool))
|
if (need_more_worker(pool))
|
||||||
wake_up_worker(pool);
|
wake_up_worker(pool);
|
||||||
|
|
||||||
rescuer->pool = NULL;
|
rescuer->pool = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user