diff --git a/src/main/scala/inox/solvers/combinators/SolverPoolFactory.scala b/src/main/scala/inox/solvers/combinators/SolverPoolFactory.scala index 4df3a27b842167b4788ed2c07e16417fec5f553f..c82db1cdda97b74a1b134c529a4f06a7ab5787ae 100644 --- a/src/main/scala/inox/solvers/combinators/SolverPoolFactory.scala +++ b/src/main/scala/inox/solvers/combinators/SolverPoolFactory.scala @@ -1,6 +1,6 @@ /* Copyright 2009-2016 EPFL, Lausanne */ -package leon +package inox package solvers package combinators @@ -17,7 +17,9 @@ import scala.reflect.runtime.universe._ * growing/shrinking pool size... */ -class SolverPoolFactory[+S <: Solver](ctx: LeonContext, sf: SolverFactory[S]) extends SolverFactory[S] { +trait SolverPoolFactory extends SolverFactory { self => + + val sf: SolverFactory { val program: self.program.type; type S = self.S } val name = "Pool(" + sf.name + ")" @@ -25,7 +27,7 @@ class SolverPoolFactory[+S <: Solver](ctx: LeonContext, sf: SolverFactory[S]) ex val poolMaxSize = 5 private[this] val availables = Queue[S]() - private[this] var inUse = Set[Solver]() + private[this] var inUse = Set[S]() def getNewSolver(): S = { if (availables.isEmpty) { @@ -38,7 +40,7 @@ class SolverPoolFactory[+S <: Solver](ctx: LeonContext, sf: SolverFactory[S]) ex s } - override def reclaim(s: Solver) = { + override def reclaim(s: S) = { try { s.reset() inUse -= s