From cb7331d3834636ca4af0357d272d082c047ec940 Mon Sep 17 00:00:00 2001 From: Hamed Gorjiara Date: Thu, 21 Nov 2019 18:51:04 -0800 Subject: [PATCH] Bug fix: consider the cases when the tuner gets timeout --- src/Tuner/basictuner.cc | 7 +++++-- src/Tuner/comptuner.cc | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Tuner/basictuner.cc b/src/Tuner/basictuner.cc index 30d729b..f3a00ea 100644 --- a/src/Tuner/basictuner.cc +++ b/src/Tuner/basictuner.cc @@ -179,7 +179,9 @@ long long BasicTuner::evaluate(Problem *problem, TunerRecord *tuner) { myfile >> sat; myfile.close(); } - updateTimeout(problem, metric); + if(sat != IS_INDETER){ + updateTimeout(problem, metric); + } snprintf(buffer, sizeof(buffer), "tuner%uused", execnum); tuner->getTuner()->addUsed(buffer); } else if (status == 124 << 8) {// timeout happens ... @@ -192,7 +194,8 @@ long long BasicTuner::evaluate(Problem *problem, TunerRecord *tuner) { if (problem->getResult() == TUNERUNSETVALUE && sat != IS_INDETER) { problem->setResult( sat ); } else if (problem->getResult() != sat && sat != IS_INDETER) { - model_print("******** Result has changed ********\n"); + model_print("******** Result has changed ******** Found a bug!!\n"); + ASSERT(0) } if (sat == IS_INDETER && metric != -1) {//The case when we have a timeout metric = -1; diff --git a/src/Tuner/comptuner.cc b/src/Tuner/comptuner.cc index d630f2d..b8b574c 100644 --- a/src/Tuner/comptuner.cc +++ b/src/Tuner/comptuner.cc @@ -31,11 +31,11 @@ void CompTuner::findBestTwoTuners() { for (uint l = 0; l < problems.getSize(); l++) { Problem *problem = problems.get(l); long long time1 = tuner1->getTime(problem); - if(time1 == -1){ + if(time1 == -1 || time2 == -2){ time1=LLONG_MAX; } long long time2 = tuner2->getTime(problem); - if(time2 == -1){ + if(time2 == -1 || time2 == -2){ time2 = LLONG_MAX; } mintimes[l] = pow(min(time1,time2), (double)1 / problems.getSize()); -- 2.34.1