From 2f4b69c9ce5e348cbcd84631a367a7db1b9772ab Mon Sep 17 00:00:00 2001
From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch>
Date: Fri, 5 Aug 2016 18:36:17 +0200
Subject: [PATCH] SolverPoolFactory

---
 .../inox/solvers/combinators/SolverPoolFactory.scala   | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/main/scala/inox/solvers/combinators/SolverPoolFactory.scala b/src/main/scala/inox/solvers/combinators/SolverPoolFactory.scala
index 4df3a27b8..c82db1cdd 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
-- 
GitLab