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 }