DatabaseCampaign: fix progress bar for >1 variant

Change-Id: I21843249830c67699214b6bed71f452b6ca03cb2
This commit is contained in:
Horst Schirmeier
2020-11-23 16:21:35 +01:00
parent c422a86bfd
commit f2e8c508de
4 changed files with 8 additions and 1 deletions

View File

@ -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);

View File

@ -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.

View File

@ -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

View File

@ -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.