This commit is contained in:
andy pan 2018-08-08 18:08:06 +08:00
parent 62fc58f047
commit e99d428a5f
2 changed files with 11 additions and 2 deletions

View File

@ -55,6 +55,7 @@ type Pool struct {
once sync.Once
}
// clear expired workers periodically.
func (p *Pool) periodicallyPurge() {
heartbeat := time.NewTicker(p.expiryDuration)
@ -77,8 +78,12 @@ func (p *Pool) periodicallyPurge() {
}
n++
if n > 0 {
if n >= cap(idleWorkers) {
p.workers = idleWorkers[:0]
} else {
p.workers = idleWorkers[n:]
}
}
p.lock.Unlock()
}
}

View File

@ -79,8 +79,12 @@ func (p *PoolWithFunc) periodicallyPurge() {
}
n++
if n > 0 {
if n >= cap(idleWorkers) {
p.workers = idleWorkers[:0]
} else {
p.workers = idleWorkers[n:]
}
}
p.lock.Unlock()
}
}