src/Pure/System/invoke_scala.scala
changeset 56730 e723f041b6d0
parent 56667 65e84b0ef974
child 61556 0d4ee4168e41
--- a/src/Pure/System/invoke_scala.scala	Fri Apr 25 20:21:27 2014 +0200
+++ b/src/Pure/System/invoke_scala.scala	Fri Apr 25 21:31:39 2014 +0200
@@ -8,6 +8,8 @@
 
 
 import java.lang.reflect.{Method, Modifier, InvocationTargetException}
+import java.util.concurrent.{Future => JFuture}
+
 import scala.util.matching.Regex
 
 
@@ -70,7 +72,7 @@
 
 class Invoke_Scala extends Session.Protocol_Handler
 {
-  private var futures = Map.empty[String, java.util.concurrent.Future[Unit]]
+  private var futures = Map.empty[String, JFuture[Unit]]
 
   private def fulfill(prover: Prover, id: String, tag: Invoke_Scala.Tag.Value, res: String): Unit =
     synchronized
@@ -81,7 +83,7 @@
       }
     }
 
-  private def cancel(prover: Prover, id: String, future: java.util.concurrent.Future[Unit])
+  private def cancel(prover: Prover, id: String, future: JFuture[Unit])
   {
     future.cancel(true)
     fulfill(prover, id, Invoke_Scala.Tag.INTERRUPT, "")
@@ -92,11 +94,10 @@
     msg.properties match {
       case Markup.Invoke_Scala(name, id) =>
         futures += (id ->
-          default_thread_pool.submit(() =>
-            {
-              val (tag, result) = Invoke_Scala.method(name, msg.text)
-              fulfill(prover, id, tag, result)
-            }))
+          Simple_Thread.submit_task {
+            val (tag, result) = Invoke_Scala.method(name, msg.text)
+            fulfill(prover, id, tag, result)
+          })
         true
       case _ => false
     }