Skip to content
Snippets Groups Projects
Commit 2666d873 authored by Etienne Kneuss's avatar Etienne Kneuss
Browse files

Catch stack-overflows occuring while checking in Pfolio

parent 3597e1ff
No related branches found
No related tags found
No related merge requests found
......@@ -40,18 +40,22 @@ class PortfolioSolver[S <: Solver with Interruptible](val context: LeonContext,
// solving
val fs = solvers.map { s =>
Future {
val result = s.check
val model: Model = if (result == Some(true)) {
s.getModel
} else {
Model.empty
try {
val result = s.check
val model: Model = if (result == Some(true)) {
s.getModel
} else {
Model.empty
}
(s, result, model)
} catch {
case _: StackOverflowError =>
context.reporter.warning("Stack Overflow while running solver.check()!")
(s, None, Model.empty)
}
(s, result, model)
}
}
fs.foreach(_ onFailure { case ex: Throwable => ex.printStackTrace() })
val result = Future.find(fs)(_._2.isDefined)
val res = Await.result(result, Duration.Inf) match {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment