have := p.workers.Load()
if have > int64(p.minWorkers) {
// jitter this so we shrink slower than we grow
timech, timer := p.ts.NewTimer(time.Duration(float64(p.targetDelay) * p.shrinkFactor * rand.Float64()))
select {
case <-p.stopCh:
timer.Stop()