Re: [PATCH V3 03/10] workqueue: async worker destruction

Tejun Heo
2014-05-20T14:23:50Z

On Tue, May 20, 2014 at 05:46:29PM +0800, Lai Jiangshan wrote:
...
> +static void worker_detach_from_pool(struct worker *worker,
> + struct worker_pool *pool)
> +{
> + struct completion *detach_completion = NULL;
> +
> + mutex_lock(&pool->manager_mutex);
> + idr_remove(&pool->worker_idr, worker->id);
> + if (idr_is_empty(&pool->worker_idr))
> + detach_completion = pool->detach_completion;
> + mutex_unlock(&pool->manager_mutex);
> +
> + if (detach_completion)
> + complete(detach_completion);

Also, please add comment explaining what's going on here.

--
tejun