From 74e49c9f28a291913f6e484f39df603955a316db Mon Sep 17 00:00:00 2001 From: Andy Pan Date: Sun, 15 Jul 2018 21:16:27 +0800 Subject: [PATCH] fixed race issue --- ants_test.go | 1 - pool.go | 2 ++ pool_func.go | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/ants_test.go b/ants_test.go index 44f013e..913a6a6 100644 --- a/ants_test.go +++ b/ants_test.go @@ -105,7 +105,6 @@ func TestCodeCov(t *testing.T) { t.Logf("pool with func, free workers number:%d", p.Free()) p.ReSize(AntsSize / 2) t.Logf("pool with func, after resize, capacity:%d", p.Cap()) - } // func TestNoPool(t *testing.T) { diff --git a/pool.go b/pool.go index cd10d2a..c832c9b 100644 --- a/pool.go +++ b/pool.go @@ -145,10 +145,12 @@ func (p *Pool) Release() error { for i := 0; i < running; i++ { p.getWorker().task <- nil } + p.lock.Lock() for i := range p.workers { p.workers[i] = nil } p.workers = nil + p.lock.Unlock() }) return nil } diff --git a/pool_func.go b/pool_func.go index bd85f03..7040f83 100644 --- a/pool_func.go +++ b/pool_func.go @@ -150,10 +150,12 @@ func (p *PoolWithFunc) Release() error { for i := 0; i < running; i++ { p.getWorker().args <- nil } + p.lock.Lock() for i := range p.workers { p.workers[i] = nil } p.workers = nil + p.lock.Unlock() }) return nil }