src/Pure/Tools/build.ML
changeset 78725 3c02ad5a1586
parent 75626 4879d0021185
child 78753 f40b59292288
equal deleted inserted replaced
78724:f2d7f4334cdc 78725:3c02ad5a1586
   107                   interrupts = false} e
   107                   interrupts = false} e
   108               |> ignore
   108               |> ignore
   109             else e ();
   109             else e ();
   110         in
   110         in
   111           exec (fn () =>
   111           exec (fn () =>
   112             (Future.interruptible_task (fn () => (build (); (0, []))) () handle exn =>
   112             (case Exn.capture (Future.interruptible_task build) () of
   113               ((1, Runtime.exn_message_list exn) handle _ (*sic!*) => (2, ["CRASHED"])))
   113               Exn.Res () => (0, [])
       
   114             | Exn.Exn exn =>
       
   115                 (case Exn.capture Runtime.exn_message_list exn of
       
   116                   Exn.Res errs => (1, errs)
       
   117                 | Exn.Exn _ (*sic!*) => (2, ["CRASHED"])))
   114           |> let open XML.Encode in pair int (list string) end
   118           |> let open XML.Encode in pair int (list string) end
   115           |> single
   119           |> single
   116           |> Output.protocol_message Markup.build_session_finished)
   120           |> Output.protocol_message Markup.build_session_finished)
   117         end
   121         end
   118       | _ => raise Match);
   122       | _ => raise Match);