From f2e8c508de1ab82f4dc2d68999fbeecc10701a41 Mon Sep 17 00:00:00 2001 From: Horst Schirmeier Date: Mon, 23 Nov 2020 16:21:35 +0100 Subject: [PATCH] DatabaseCampaign: fix progress bar for >1 variant Change-Id: I21843249830c67699214b6bed71f452b6ca03cb2 --- src/core/cpn/CampaignManager.cc | 5 +++++ src/core/cpn/CampaignManager.hpp | 1 + src/core/cpn/DatabaseCampaign.cc | 2 +- src/core/cpn/JobServer.hpp | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/core/cpn/CampaignManager.cc b/src/core/cpn/CampaignManager.cc index a9c78940..1de0f170 100644 --- a/src/core/cpn/CampaignManager.cc +++ b/src/core/cpn/CampaignManager.cc @@ -47,6 +47,11 @@ void CampaignManager::setTotalCount(uint64_t count) m_jobserver->setTotalCount(count); } +void CampaignManager::increaseTotalCount(uint64_t count) +{ + m_jobserver->increaseTotalCount(count); +} + void CampaignManager::skipJobs(uint64_t count) { m_jobserver->skipJobs(count); diff --git a/src/core/cpn/CampaignManager.hpp b/src/core/cpn/CampaignManager.hpp index fcc35882..27e6f4ab 100644 --- a/src/core/cpn/CampaignManager.hpp +++ b/src/core/cpn/CampaignManager.hpp @@ -72,6 +72,7 @@ public: * in the database). */ void setTotalCount(uint64_t count); + void increaseTotalCount(uint64_t count); void skipJobs(uint64_t count); /** * User campaign has finished. diff --git a/src/core/cpn/DatabaseCampaign.cc b/src/core/cpn/DatabaseCampaign.cc index 86d9e60a..72d6ab43 100644 --- a/src/core/cpn/DatabaseCampaign.cc +++ b/src/core/cpn/DatabaseCampaign.cc @@ -221,7 +221,7 @@ bool DatabaseCampaign::run_variant(Database::Variant variant) { log_send << "Found " << experiment_count << " jobs in database. (" << variant.variant << "/" << variant.benchmark << ")" << std::endl; - campaignmanager.setTotalCount(experiment_count); + campaignmanager.increaseTotalCount(experiment_count); // abstraction of injection point: // must not be initialized in loop, because hop chain calculator would lose diff --git a/src/core/cpn/JobServer.hpp b/src/core/cpn/JobServer.hpp index 604374c8..c248c958 100644 --- a/src/core/cpn/JobServer.hpp +++ b/src/core/cpn/JobServer.hpp @@ -124,6 +124,7 @@ public: * in the database). */ void setTotalCount(uint64_t count) { m_TotalCount = count; } + void increaseTotalCount(uint64_t count) { m_TotalCount = m_TotalCount.value_or(0) + count; } void skipJobs(uint64_t count) { ++m_DoneCount; /* FIXME assume atomic */ } /** * Checks whether there are no more experiment parameter sets.