From f7bb764909e42d807d3c9c59b439aec773a63554 Mon Sep 17 00:00:00 2001 From: Timothee Cour Date: Tue, 2 Jun 2020 00:46:51 -0700 Subject: [PATCH] fix https://github.com/timotheecour/Nim/issues/266 retry on failure to avoid common 503 github errors --- lib/std/private/nimbleutils.nim | 32 ++++++++++++++++++++++++++++++ testament/categories.nim | 7 ++++--- testament/lib/stdtest/netutils.nim | 4 ++++ 3 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 lib/std/private/nimbleutils.nim diff --git a/lib/std/private/nimbleutils.nim b/lib/std/private/nimbleutils.nim new file mode 100644 index 0000000000000..297fb96958bbd --- /dev/null +++ b/lib/std/private/nimbleutils.nim @@ -0,0 +1,32 @@ +##[ +internal API for now, API subject to change +]## + +import std/[os,osproc,sugar,strutils] + +proc actionRetry*(maxRetry: int, backoffDuration: float, action: proc(): bool): bool = + ## retry `action` up to `maxRetry` times with exponential backoff and initial + ## duraton of `backoffDuration` seconds + var t = backoffDuration + for i in 0..