code: func (b *Breaker) Proceed(event Event) time.Duration {
  	b.mu.Lock()
  	defer b.mu.Unlock()
  
  	if b.recent < b.threshold {
  		return 0
  	}
  
  	return b.last.Add(b.backoff).Sub(time.Now())
  }
docs: // Proceed checks the failures against the threshold.