Commit d8ca83e6 authored by Lai Jiangshan's avatar Lai Jiangshan Committed by Tejun Heo
Browse files

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: default avatarLai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent f7537df5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2313,11 +2313,11 @@ repeat:
		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
		 * and stalling the execution.
		 */
		if (keep_working(pool))
		if (need_more_worker(pool))
			wake_up_worker(pool);

		rescuer->pool = NULL;