diff --git a/pool.go b/pool.go index 4f8dbae..1420c2e 100644 --- a/pool.go +++ b/pool.go @@ -145,14 +145,13 @@ func (p *Pool) Cap() int { func (p *Pool) ReSize(size int) { if size == p.Cap() { return - } else if size < p.Cap() { - diff := p.Cap() - size - atomic.StoreInt32(&p.capacity, int32(size)) + } + atomic.StoreInt32(&p.capacity, int32(size)) + diff := p.Running() - size + if diff > 0 { for i := 0; i < diff; i++ { p.getWorker().task <- nil } - } else { - atomic.StoreInt32(&p.capacity, int32(size)) } } diff --git a/pool_func.go b/pool_func.go index 6099868..6ba7817 100644 --- a/pool_func.go +++ b/pool_func.go @@ -150,14 +150,13 @@ func (p *PoolWithFunc) Cap() int { func (p *PoolWithFunc) ReSize(size int) { if size == p.Cap() { return - } else if size < p.Cap() { - diff := p.Cap() - size - atomic.StoreInt32(&p.capacity, int32(size)) + } + atomic.StoreInt32(&p.capacity, int32(size)) + diff := p.Running() - size + if diff > 0 { for i := 0; i < diff; i++ { p.getWorker().args <- nil } - } else { - atomic.StoreInt32(&p.capacity, int32(size)) } }