adding guards for unnecessary computations and adjusting jitter backoff type #6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I know this repo hasn't changed in the past 6 years, but just putting this out there for posterity's sake
List of changes with some minor details around the reason for them:
Reset()
seems to be the intended modifier for that within theBackoff
interfacemath.Pow
as ifMaxAttempts
is not set, this could cause increasing CPU intensive calls that are unnecessary. This is done by maintaining state of the last value this was set to.MaxAttempts
is not set,attempts
could overflow causing weird behavior as the backoff would essentially reset.JitterBackoff
uses an embedded struct to extend behavior of theSimpleBackoff
After
ensures that channels are closed when done with them (was unsure if the channel is GC'd without that closure).assert.WithinDuration
s forAfter
/Wait
tests as they depend on the goroutine scheduler and code to be executed without any delays making it fragile and failing depending on the environment.