diff options
Diffstat (limited to 'src/zen/cmds/exec_cmd.cpp')
| -rw-r--r-- | src/zen/cmds/exec_cmd.cpp | 45 |
1 files changed, 24 insertions, 21 deletions
diff --git a/src/zen/cmds/exec_cmd.cpp b/src/zen/cmds/exec_cmd.cpp index dab53f13c..6cebfa430 100644 --- a/src/zen/cmds/exec_cmd.cpp +++ b/src/zen/cmds/exec_cmd.cpp @@ -23,7 +23,7 @@ #include <zenhttp/httpclient.h> #include <zenhttp/packageformat.h> -#include "../progressbar.h" +#include "consoleprogress.h" #include <EASTL/hash_map.h> #include <EASTL/hash_set.h> @@ -133,7 +133,7 @@ struct ExecSessionConfig bool Quiet = false; bool DumpActions = false; bool Binary = false; - ProgressBar::Mode ProgressMode = ProgressBar::Mode::Pretty; + ConsoleProgressMode ProgressMode = ConsoleProgressMode::Pretty; }; ////////////////////////////////////////////////////////////////////////// @@ -903,9 +903,11 @@ ExecSessionRunner::Run() std::atomic<int> SubmittedWorkItems{0}; size_t TotalWorkItems = RemainingWorkItems.load(); - ProgressBar SubmitProgress(m_Config.ProgressMode, "Submit"); - SubmitProgress.UpdateState({.Task = "Submitting work items", .TotalCount = TotalWorkItems, .RemainingCount = RemainingWorkItems.load()}, - false); + std::unique_ptr<ProgressBase> ProgressOwner(CreateConsoleProgress(m_Config.ProgressMode)); + std::unique_ptr<ProgressBase::ProgressBar> SubmitProgress = ProgressOwner->CreateProgressBar("Submit"); + SubmitProgress->UpdateState( + {.Task = "Submitting work items", .TotalCount = TotalWorkItems, .RemainingCount = RemainingWorkItems.load()}, + false); int OffsetCounter = m_Config.Offset; int StrideCounter = m_Config.Stride; @@ -1012,11 +1014,11 @@ ExecSessionRunner::Run() size_t Remaining = --RemainingWorkItems; int Submitted = ++SubmittedWorkItems; - SubmitProgress.UpdateState({.Task = "Submitting work items", - .Details = fmt::format("#{} LSN {}", Submitted, LsnField), - .TotalCount = TotalWorkItems, - .RemainingCount = Remaining}, - false); + SubmitProgress->UpdateState({.Task = "Submitting work items", + .Details = fmt::format("#{} LSN {}", Submitted, LsnField), + .TotalCount = TotalWorkItems, + .RemainingCount = Remaining}, + false); if (!m_Config.OutputPath.empty()) { @@ -1056,30 +1058,31 @@ ExecSessionRunner::Run() }, TargetParallelism); - SubmitProgress.Finish(); + SubmitProgress->Finish(); // Wait until all pending work is complete size_t TotalPendingJobs = m_PendingJobs.GetSize(); - ProgressBar CompletionProgress(m_Config.ProgressMode, "Execute"); + std::unique_ptr<ProgressBase::ProgressBar> CompletionProgress = ProgressOwner->CreateProgressBar("Execute"); while (!m_PendingJobs.IsEmpty()) { size_t PendingCount = m_PendingJobs.GetSize(); - CompletionProgress.UpdateState({.Task = "Executing work items", - .Details = fmt::format("{} completed, {} remaining", TotalPendingJobs - PendingCount, PendingCount), - .TotalCount = TotalPendingJobs, - .RemainingCount = PendingCount}, - false); + CompletionProgress->UpdateState( + {.Task = "Executing work items", + .Details = fmt::format("{} completed, {} remaining", TotalPendingJobs - PendingCount, PendingCount), + .TotalCount = TotalPendingJobs, + .RemainingCount = PendingCount}, + false); - zen::Sleep(GetUpdateDelayMS(m_Config.ProgressMode)); + zen::Sleep(ProgressOwner->GetProgressUpdateDelayMS()); DrainCompletedJobs(); SendOrchestratorHeartbeat(); } - CompletionProgress.Finish(); + CompletionProgress->Finish(); // Write summary files @@ -1438,10 +1441,10 @@ ExecCommand::OnParentOptionsParsed(const ZenCliOptions& GlobalOptions) int ExecCommand::RunSession(zen::compute::ComputeServiceSession& ComputeSession, std::string_view OrchestratorUrl) { - ProgressBar::Mode ProgressMode = ProgressBar::Mode::Pretty; + ConsoleProgressMode ProgressMode = ConsoleProgressMode::Pretty; if (m_QuietLogging) { - ProgressMode = ProgressBar::Mode::Quiet; + ProgressMode = ConsoleProgressMode::Quiet; } ExecSessionConfig Config{ |