summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/util
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-06-11 11:15:08 +0200
committerFlorian Dold <florian@dold.me>2021-06-11 11:15:08 +0200
commite77510106fdcb0448af809fd6c928f1ff80b6d15 (patch)
tree7aeb34586b4ae86d578090da296de0050e723328 /packages/taler-wallet-core/src/util
parent8ad36d89f55783c34043ee9ef37759cd94bcec7c (diff)
downloadwallet-core-e77510106fdcb0448af809fd6c928f1ff80b6d15.tar.gz
wallet-core-e77510106fdcb0448af809fd6c928f1ff80b6d15.tar.bz2
wallet-core-e77510106fdcb0448af809fd6c928f1ff80b6d15.zip
simplify retry timeout handling
Diffstat (limited to 'packages/taler-wallet-core/src/util')
-rw-r--r--packages/taler-wallet-core/src/util/retries.ts16
1 files changed, 5 insertions, 11 deletions
diff --git a/packages/taler-wallet-core/src/util/retries.ts b/packages/taler-wallet-core/src/util/retries.ts
index a7f4cd281..b86846244 100644
--- a/packages/taler-wallet-core/src/util/retries.ts
+++ b/packages/taler-wallet-core/src/util/retries.ts
@@ -27,7 +27,6 @@ export interface RetryInfo {
firstTry: Timestamp;
nextRetry: Timestamp;
retryCounter: number;
- active: boolean;
}
export interface RetryPolicy {
@@ -52,16 +51,19 @@ export function updateRetryInfoTimeout(
r.nextRetry = { t_ms: "never" };
return;
}
- r.active = true;
const t =
now.t_ms + p.backoffDelta.d_ms * Math.pow(p.backoffBase, r.retryCounter);
r.nextRetry = { t_ms: t };
}
export function getRetryDuration(
- r: RetryInfo,
+ r: RetryInfo | undefined,
p: RetryPolicy = defaultRetryPolicy,
): Duration {
+ if (!r) {
+ // If we don't have any retry info, run immediately.
+ return { d_ms: 0 };
+ }
if (p.backoffDelta.d_ms === "forever") {
return { d_ms: "forever" };
}
@@ -73,14 +75,6 @@ export function initRetryInfo(
active = true,
p: RetryPolicy = defaultRetryPolicy,
): RetryInfo {
- if (!active) {
- return {
- active: false,
- firstTry: { t_ms: Number.MAX_SAFE_INTEGER },
- nextRetry: { t_ms: Number.MAX_SAFE_INTEGER },
- retryCounter: 0,
- };
- }
const now = getTimestampNow();
const info = {
firstTry: now,