Skip to content

Commit 1ce9440

Browse files
committed
Fixing rounding errors in delay calculations
1 parent 0e4f5a3 commit 1ce9440

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

src/main/java/net/tascalate/concurrent/delays/ExponentialDelayPolicy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public Duration delay(RetryContext context) {
5555
double factor = Math.pow(multiplier, context.getRetryCount());
5656
return DurationCalcs.safeTransform(
5757
initialDelay,
58-
(amount, dimIdx) -> DurationCalcs.toBoolean(Long.MAX_VALUE / amount > factor),
58+
(amount, dimIdx) -> DurationCalcs.toBoolean((double)Long.MAX_VALUE / amount > factor),
5959
(amount, dimIdx) -> (long)(amount * factor)
6060
);
6161
}

src/main/java/net/tascalate/concurrent/delays/ProportionalRandomDelayPolicy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,6 @@ long addRandomJitter(long initialDelay, double randomizer, int dimIdx) {
6767
@Override
6868
boolean checkBounds(long initialDelay, double randomizer, int dimIdx) {
6969
double randomMultiplier = (1 - 2 * randomizer) * multiplier;
70-
return Long.MAX_VALUE / initialDelay > 1 + randomMultiplier;
70+
return (double)Long.MAX_VALUE / initialDelay > 1 + randomMultiplier;
7171
}
7272
}

0 commit comments

Comments
 (0)