func (c *maxExponentialContextService) Yield() {
	waitFor := c.waitDuration()
	select {
	case <-c.ctx.Done():
		// context is done, abort, never yield
		c.Abort()
	case <-time.After(waitFor):
		// time expired, ok to proceed
	}
}
// Wait will cause go to sleep for the WaitFor
Wait will cause go to sleep for the WaitFor
// Wait will cause go to sleep for the WaitFor
func (c *maxExponentialContextService) Yield() {
	waitFor := c.waitDuration()
	select {
	case <-c.ctx.Done():
		c.Abort()
	case <-time.After(waitFor):
	}
}
func ( c * maxExponentialContextService ) Yield ( ) { waitFor := c . waitDuration ( ) select { case <- c . ctx . Done ( ) : c . Abort ( ) case <- time . After ( waitFor ) : } }
Wait will cause go to sleep for the WaitFor
Wait will cause go to sleep for the WaitFor
// context is done, abort, never yield // time expired, ok to proceed