func (b *basic) This(test func(controller ServiceController) error) Errorer {
	var errorList ErrorAppender
	// Retry until we should not
	for true {
		// Perform the action under test, this is the thing the developer would like to retry
		err := test(b.svc.Controller())
		// Notify our service that the try/retry has occurred
		b.svc.NotifyRetry()
		if err != nil {
			if errorList == nil {
				// factory a new error list, if not yet created (lazy-create)
				errorList = b.svc.NewErrorList()
			}
			// Got an error, record it
			errorList.Append(err)
			// Wait, but only if we should try again
			if b.svc.ShouldTry() {
				b.svc.Yield()
			} else {
				return errorList
			}
		} else {
			// success, no need to retry
			return nil
		}
	}
	// should be unreachable, but go is complaining that there is no return
	return nil
}
// This invokes the developer's method to retry
This invokes the developer's method to retry
// This invokes the developer ' s method to retry
func (b *basic) This(test func(controller ServiceController) error) Errorer {
	var errorList ErrorAppender
	for true {
		err := test(b.svc.Controller())
		b.svc.NotifyRetry()
		if err != nil {
			if errorList == nil {
				errorList = b.svc.NewErrorList()
			}
			errorList.Append(err)
			if b.svc.ShouldTry() {
				b.svc.Yield()
			} else {
				return errorList
			}
		} else {
			return nil
		}
	}
	return nil
}
func ( b * basic ) This ( test func ( controller ServiceController ) error ) Errorer { var errorList ErrorAppender for true { err := test ( b . svc . Controller ( ) ) b . svc . NotifyRetry ( ) if err != nil { if errorList == nil { errorList = b . svc . NewErrorList ( ) } errorList . Append ( err ) if b . svc . ShouldTry ( ) { b . svc . Yield ( ) } else { return errorList } } else { return nil } } return nil }
This invokes the developer's method to retry
This invokes the developer ' s method to retry
// Retry until we should not // Perform the action under test, this is the thing the developer would like to retry // Notify our service that the try/retry has occurred // factory a new error list, if not yet created (lazy-create) // Got an error, record it // Wait, but only if we should try again // success, no need to retry // should be unreachable, but go is complaining that there is no return