From 40927bf322a401adad79c2b0fe6cd8e0b887422c Mon Sep 17 00:00:00 2001
From: Sebastian Krings <sebastian@krin.gs>
Date: Thu, 6 Oct 2016 09:59:22 +0200
Subject: [PATCH] fix passing around timeout variable

---
 .../java/de/stups/probkodkod/KodkodSession.java     |  2 +-
 .../java/de/stups/probkodkod/SolverChecker.java     | 13 +++++++++----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/main/java/de/stups/probkodkod/KodkodSession.java b/src/main/java/de/stups/probkodkod/KodkodSession.java
index 04a8c81..84e4183 100644
--- a/src/main/java/de/stups/probkodkod/KodkodSession.java
+++ b/src/main/java/de/stups/probkodkod/KodkodSession.java
@@ -35,7 +35,7 @@ public class KodkodSession {
 
 		final Solver solver = new Solver();
 
-		SATFactory satFactory = SolverChecker.determineSatFactory(sat);
+		SATFactory satFactory = SolverChecker.determineSatFactory(sat, timeout);
 		solver.options().setSolver(satFactory);
 
 		solver.options().setSymmetryBreaking(symmetry);
diff --git a/src/main/java/de/stups/probkodkod/SolverChecker.java b/src/main/java/de/stups/probkodkod/SolverChecker.java
index cf7238a..bfff2a6 100644
--- a/src/main/java/de/stups/probkodkod/SolverChecker.java
+++ b/src/main/java/de/stups/probkodkod/SolverChecker.java
@@ -27,15 +27,20 @@ public class SolverChecker {
 	private static final Logger LOGGER = Logger.getLogger("de.stups.probkodkod");
 
 	public static SATFactory determineSatFactory(SATSolver satSolver) {
+		// a default timeout - an individual one is requested by prob anyway
+		return determineSatFactory(satSolver, 1500);
+	}
+
+	public static SATFactory determineSatFactory(SATSolver satSolver, long timeout) {
 		switch (satSolver) {
 		case glucose:
-			return determineSatFactory(SATFactory.Glucose, new SAT4JWithTimeoutFactory());
+			return determineSatFactory(SATFactory.Glucose, new SAT4JWithTimeoutFactory(timeout));
 		case lingeling:
-			return determineSatFactory(SATFactory.Lingeling, new SAT4JWithTimeoutFactory());
+			return determineSatFactory(SATFactory.Lingeling, new SAT4JWithTimeoutFactory(timeout));
 		case minisat:
-			return determineSatFactory(SATFactory.MiniSat, new SAT4JWithTimeoutFactory());
+			return determineSatFactory(SATFactory.MiniSat, new SAT4JWithTimeoutFactory(timeout));
 		case sat4j:
-			return determineSatFactory(new SAT4JWithTimeoutFactory());
+			return determineSatFactory(new SAT4JWithTimeoutFactory(timeout));
 		default:
 			throw new Error("No valid SAT solver back-end for Kodkod selected.");
 		}
-- 
GitLab