Fixed benchmark job object lifetime
This commit is contained in:
parent
61e8eb5ada
commit
d87ce78a64
1 changed files with 13 additions and 1 deletions
|
@ -29,6 +29,18 @@
|
|||
|
||||
namespace xmrig {
|
||||
|
||||
Benchmark::Benchmark() : m_controller(nullptr), m_isNewBenchRun(true) {
|
||||
for (BenchAlgo bench_algo = static_cast<BenchAlgo>(0); bench_algo != BenchAlgo::MAX; bench_algo = static_cast<BenchAlgo>(bench_algo + 1)) {
|
||||
m_bench_job[bench_algo] = new Job(false, Algorithm(ba2a[bench_algo]), "benchmark");
|
||||
}
|
||||
}
|
||||
|
||||
Benchmark::~Benchmark() {
|
||||
for (BenchAlgo bench_algo = static_cast<BenchAlgo>(0); bench_algo != BenchAlgo::MAX; bench_algo = static_cast<BenchAlgo>(bench_algo + 1)) {
|
||||
delete m_bench_job[bench_algo];
|
||||
}
|
||||
}
|
||||
|
||||
// start performance measurements from the first bench_algo
|
||||
void Benchmark::start() {
|
||||
JobResults::setListener(this); // register benchmark as job result listener to compute hashrates there
|
||||
|
@ -121,7 +133,7 @@ float Benchmark::get_algo_perf(Algorithm::Id algo) const {
|
|||
// start performance measurements for specified perf bench_algo
|
||||
void Benchmark::start(const BenchAlgo bench_algo) {
|
||||
// prepare test job for benchmark runs ("benchmark" client id is to make sure we can detect benchmark jobs)
|
||||
static Job job(false, Algorithm(ba2a[bench_algo]), "benchmark");
|
||||
Job& job = *m_bench_job[bench_algo];
|
||||
job.setId(Algorithm(ba2a[bench_algo]).shortName()); // need to set different id so that workers will see job change
|
||||
// 99 here to trigger all future bench_algo versions for auto veriant detection based on block version
|
||||
job.setBlob("9905A0DBD6BF05CF16E503F3A66F78007CBF34144332ECBFC22ED95C8700383B309ACE1923A0964B00000008BA939A62724C0D7581FCE5761E9D8A0E6A1C3F924FDD8493D1115649C05EB601");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue