summaryrefslogtreecommitdiff
path: root/src/buildtool/common/remote/retry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildtool/common/remote/retry.cpp')
-rw-r--r--src/buildtool/common/remote/retry.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/buildtool/common/remote/retry.cpp b/src/buildtool/common/remote/retry.cpp
index 00d275cd..8c97bf38 100644
--- a/src/buildtool/common/remote/retry.cpp
+++ b/src/buildtool/common/remote/retry.cpp
@@ -15,6 +15,7 @@
#include "src/buildtool/common/remote/retry.hpp"
#ifndef BOOTSTRAP_BUILD_TOOL
+#include <algorithm>
#include <chrono>
#include <thread>
@@ -22,7 +23,8 @@
auto WithRetry(CallableReturningRetryResponse const& f,
RetryConfig const& retry_config,
- Logger const& logger) noexcept -> bool {
+ Logger const& logger,
+ LogLevel fatal_log_level) noexcept -> bool {
try {
auto const& attempts = retry_config.GetMaxAttempts();
for (auto attempt = 1U; attempt <= attempts; ++attempt) {
@@ -32,7 +34,7 @@ auto WithRetry(CallableReturningRetryResponse const& f,
}
if (fatal) {
if (error_msg) {
- logger.Emit(LogLevel::Error, "{}", *error_msg);
+ logger.Emit(fatal_log_level, "{}", *error_msg);
}
return false;
}
@@ -51,7 +53,7 @@ auto WithRetry(CallableReturningRetryResponse const& f,
}
else {
if (error_msg) {
- logger.Emit(LogLevel::Error,
+ logger.Emit(fatal_log_level,
"After {} attempts: {}",
attempt,
*error_msg);
@@ -59,7 +61,8 @@ auto WithRetry(CallableReturningRetryResponse const& f,
}
}
} catch (...) {
- logger.Emit(LogLevel::Error, "WithRetry: caught unknown exception");
+ logger.Emit(std::min(fatal_log_level, LogLevel::Warning),
+ "WithRetry: caught unknown exception");
}
return false;
}