Round time estimate up to nearest nanosecond

This commit is contained in:
Seth Parker
2020-11-16 11:27:16 -05:00
parent e01c2950f2
commit d11ffd91c6
4 changed files with 24 additions and 18 deletions

View File

@@ -200,8 +200,9 @@ private:
if (saved_start_time) { if (saved_start_time) {
auto eta = std::chrono::nanoseconds( auto eta = std::chrono::nanoseconds(
progress_ > 0 ? static_cast<long long>(float(elapsed.count()) * progress_ > 0
max_progress / progress_) ? static_cast<long long>(std::ceil(float(elapsed.count()) *
max_progress / progress_))
: 0); : 0);
auto remaining = eta > elapsed ? (eta - elapsed) : (elapsed - eta); auto remaining = eta > elapsed ? (eta - elapsed) : (elapsed - eta);
details::write_duration(os, remaining); details::write_duration(os, remaining);

View File

@@ -255,8 +255,9 @@ private:
if (saved_start_time) { if (saved_start_time) {
auto eta = std::chrono::nanoseconds( auto eta = std::chrono::nanoseconds(
progress_ > 0 ? static_cast<long long>(float(elapsed_.count()) * progress_ > 0
max_progress / progress_) ? static_cast<long long>(std::ceil(float(elapsed_.count()) *
max_progress / progress_))
: 0); : 0);
auto remaining = eta > elapsed_ ? (eta - elapsed_) : (elapsed_ - eta); auto remaining = eta > elapsed_ ? (eta - elapsed_) : (elapsed_ - eta);
details::write_duration(os, remaining); details::write_duration(os, remaining);

View File

@@ -195,8 +195,9 @@ public:
else else
os << " ["; os << " [";
auto eta = std::chrono::nanoseconds( auto eta = std::chrono::nanoseconds(
progress_ > 0 ? static_cast<long long>(float(elapsed.count()) * progress_ > 0
max_progress / progress_) ? static_cast<long long>(std::ceil(float(elapsed.count()) *
max_progress / progress_))
: 0); : 0);
auto remaining = eta > elapsed ? (eta - elapsed) : (elapsed - eta); auto remaining = eta > elapsed ? (eta - elapsed) : (elapsed - eta);
details::write_duration(os, remaining); details::write_duration(os, remaining);

View File

@@ -1788,8 +1788,9 @@ private:
if (saved_start_time) { if (saved_start_time) {
auto eta = std::chrono::nanoseconds( auto eta = std::chrono::nanoseconds(
progress_ > 0 ? static_cast<long long>(float(elapsed_.count()) * progress_ > 0
max_progress / progress_) ? static_cast<long long>(std::ceil(float(elapsed_.count()) *
max_progress / progress_))
: 0); : 0);
auto remaining = eta > elapsed_ ? (eta - elapsed_) : (elapsed_ - eta); auto remaining = eta > elapsed_ ? (eta - elapsed_) : (elapsed_ - eta);
details::write_duration(os, remaining); details::write_duration(os, remaining);
@@ -2089,8 +2090,9 @@ private:
if (saved_start_time) { if (saved_start_time) {
auto eta = std::chrono::nanoseconds( auto eta = std::chrono::nanoseconds(
progress_ > 0 ? static_cast<long long>(float(elapsed.count()) * progress_ > 0
max_progress / progress_) ? static_cast<long long>(std::ceil(float(elapsed.count()) *
max_progress / progress_))
: 0); : 0);
auto remaining = eta > elapsed ? (eta - elapsed) : (elapsed - eta); auto remaining = eta > elapsed ? (eta - elapsed) : (elapsed - eta);
details::write_duration(os, remaining); details::write_duration(os, remaining);
@@ -2798,8 +2800,9 @@ public:
else else
os << " ["; os << " [";
auto eta = std::chrono::nanoseconds( auto eta = std::chrono::nanoseconds(
progress_ > 0 ? static_cast<long long>(float(elapsed.count()) * progress_ > 0
max_progress / progress_) ? static_cast<long long>(std::ceil(float(elapsed.count()) *
max_progress / progress_))
: 0); : 0);
auto remaining = eta > elapsed ? (eta - elapsed) : (elapsed - eta); auto remaining = eta > elapsed ? (eta - elapsed) : (elapsed - eta);
details::write_duration(os, remaining); details::write_duration(os, remaining);