equal
deleted
inserted
replaced
7 |
7 |
8 package isabelle |
8 package isabelle |
9 |
9 |
10 |
10 |
11 import java.lang.Thread |
11 import java.lang.Thread |
|
12 import java.util.concurrent.{Callable, Future => JFuture} |
|
13 |
|
14 import scala.collection.parallel.ForkJoinTasks |
12 |
15 |
13 |
16 |
14 object Simple_Thread |
17 object Simple_Thread |
15 { |
18 { |
16 /* pending interrupts */ |
19 /* pending interrupts */ |
38 { |
41 { |
39 val result = Future.promise[A] |
42 val result = Future.promise[A] |
40 val thread = fork(name, daemon) { result.fulfill_result(Exn.capture(body)) } |
43 val thread = fork(name, daemon) { result.fulfill_result(Exn.capture(body)) } |
41 (thread, result) |
44 (thread, result) |
42 } |
45 } |
|
46 |
|
47 |
|
48 /* thread pool */ |
|
49 |
|
50 lazy val default_pool = ForkJoinTasks.defaultForkJoinPool |
|
51 |
|
52 def submit_task[A](body: => A): JFuture[A] = |
|
53 default_pool.submit(new Callable[A] { def call = body }) |
43 } |
54 } |
44 |
55 |