Limiting satune timeout
[satune.git] / src / Tuner / basictuner.cc
index 122f4d332c1915163997c1e8b45378e3dd91cbc5..30d729b2cb2c12d0a7842e78b4db45505fc0a6a5 100644 (file)
@@ -157,7 +157,7 @@ long long BasicTuner::evaluate(Problem *problem, TunerRecord *tuner) {
        uint timeinsecs = problem->getBestTime() / NANOSEC;
        uint adaptive = (timeinsecs > 30) ? timeinsecs * 5 : 150;
        uint maxtime = (adaptive < timeout) ? adaptive : timeout;
-       uint satuneTimeout = 2*maxtime;
+       uint satuneTimeout = (2*maxtime < maxtime + 600)?2*maxtime: maxtime + 600;
        //Do run
        snprintf(buffer, sizeof(buffer), "timeout %u ./run.sh deserializerun %s %u tuner%u result%u > log%u", satuneTimeout, problem->getProblem(), maxtime, execnum, execnum, execnum);
        model_print("Running: %s\n", buffer);
@@ -182,7 +182,10 @@ long long BasicTuner::evaluate(Problem *problem, TunerRecord *tuner) {
                updateTimeout(problem, metric);
                snprintf(buffer, sizeof(buffer), "tuner%uused", execnum);
                tuner->getTuner()->addUsed(buffer);
+       } else if (status == 124 << 8) {// timeout happens ...
+               tuner->getTuner()->copySettingstoUsedSettings();
        }
+
        //Increment execution count
        execnum++;