At Wed, 18 Dec 2013 14:25:48 +0800,
Liu Yuan wrote:
> 
> On Wed, Dec 18, 2013 at 03:04:22PM +0900, Hitoshi Mitake wrote:
> > wi->nr_threads is protected by wi->startup_lock now, we can make the
> > critical section in queue_work() smaller.
> > 
> > Signed-off-by: Hitoshi Mitake <[email protected]>
> > ---
> >  lib/work.c |    2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/lib/work.c b/lib/work.c
> > index 9d5c5a9..c3b568b 100644
> > --- a/lib/work.c
> > +++ b/lib/work.c
> > @@ -271,12 +271,12 @@ void queue_work(struct work_queue *q, struct work 
> > *work)
> >     struct worker_info *wi = container_of(q, struct worker_info, q);
> >  
> >     uatomic_inc(&wi->nr_workers);
> > -   pthread_mutex_lock(&wi->pending_lock);
> >  
> >     if (wq_need_grow(wi))
> 
> no need to protect 'wq_need_grow'? I think this patch is wrong because
> we_need_grow should be protected by wi->pending_lock.

wq_need_grow() should be protected by workers_lock, not pending_lock. I'll send
v5.

Thanks,
Hitoshi
-- 
sheepdog mailing list
[email protected]
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to