src/Pure/Thy/thy_info.ML
changeset 53190 5d92649a310e
parent 51661 92e58b76dbb1
child 53192 04df1d236e1c
--- a/src/Pure/Thy/thy_info.ML	Sun Aug 25 16:03:12 2013 +0200
+++ b/src/Pure/Thy/thy_info.ML	Sun Aug 25 17:04:22 2013 +0200
@@ -174,11 +174,9 @@
 fun result_commit (Result {commit, ...}) = commit;
 fun result_ord (Result {weight = i, ...}, Result {weight = j, ...}) = int_ord (j, i);
 
-fun join_proofs (Result {theory, id, ...}) =
-  let
-    val result1 = Exn.capture Thm.join_theory_proofs theory;
-    val results2 = Future.join_results (Goal.peek_futures id);
-  in result1 :: results2 end;
+fun join_theory (Result {theory, id, ...}) =
+  Exn.capture Thm.join_theory_proofs theory ::
+  map Exn.Exn (maps Task_Queue.group_status (Goal.peek_futures id));
 
 
 datatype task =
@@ -198,7 +196,7 @@
       Task (parents, body) =>
         let
           val result = body (task_parents deps parents);
-          val _ = Par_Exn.release_all (join_proofs result);
+          val _ = Par_Exn.release_all (join_theory result);
           val _ = result_present result ();
           val _ = result_commit result ();
         in result_theory result end
@@ -224,7 +222,7 @@
     val results1 = futures
       |> maps (fn future =>
           (case Future.join_result future of
-            Exn.Res result => join_proofs result
+            Exn.Res result => join_theory result
           | Exn.Exn exn => [Exn.Exn exn]));
 
     val results2 = futures
@@ -237,7 +235,7 @@
       |> map (fn future => Exn.capture (fn () => result_commit (Future.join future) ()) ());
 
     (* FIXME avoid global reset_futures (!??) *)
-    val results4 = map Exn.Exn (map_filter Task_Queue.group_status (Goal.reset_futures ()));
+    val results4 = map Exn.Exn (maps Task_Queue.group_status (Goal.reset_futures ()));
 
     val _ = Par_Exn.release_all (results1 @ results2 @ results3 @ results4);
   in () end);