src/Pure/Concurrent/future.scala
changeset 61563 91c3aedbfc5e
parent 61559 313eca3fa847
child 62247 ec35b8aca636
--- a/src/Pure/Concurrent/future.scala	Tue Nov 03 17:41:13 2015 +0100
+++ b/src/Pure/Concurrent/future.scala	Tue Nov 03 17:53:09 2015 +0100
@@ -8,6 +8,9 @@
 package isabelle
 
 
+import java.util.concurrent.Callable
+
+
 /* futures and promises */
 
 object Future
@@ -85,7 +88,7 @@
       status.change(_ => Finished(if (Thread.interrupted) Exn.Exn(Exn.Interrupt()) else result))
     }
   }
-  private val task = Standard_Thread.submit_task { try_run() }
+  private val task = Standard_Thread.pool.submit(new Callable[A] { def call = body })
 
   def join_result: Exn.Result[A] =
   {