src/Pure/Tools/build.ML
changeset 71667 4d2de35214c5
parent 71656 3e121f999120
child 71669 12ebd8d0deee
equal deleted inserted replaced
71666:e15ca98ffbfe 71667:4d2de35214c5
   252   Isabelle_Process.protocol_command "build_session"
   252   Isabelle_Process.protocol_command "build_session"
   253     (fn [args_yxml] =>
   253     (fn [args_yxml] =>
   254         let
   254         let
   255           val args = decode_args args_yxml;
   255           val args = decode_args args_yxml;
   256           val errs =
   256           val errs =
   257             Future.interruptible_task (fn () =>
   257             Future.interruptible_task (fn () => (build_session args; [])) () handle exn =>
   258               (build_session args; []) handle exn =>
       
   259               (Runtime.exn_message_list exn handle _ (*sic!*) =>
   258               (Runtime.exn_message_list exn handle _ (*sic!*) =>
   260                 (build_session_finished ["CRASHED"];
   259                 (build_session_finished ["CRASHED"];
   261                   raise Isabelle_Process.EXIT 1))) ();
   260                   raise Isabelle_Process.EXIT 2));
   262           val _ = build_session_finished errs;
   261           val _ = build_session_finished errs;
   263         in if null errs then () else raise Isabelle_Process.EXIT 1 end
   262         in
       
   263           if null errs
       
   264           then raise Isabelle_Process.STOP
       
   265           else raise Isabelle_Process.EXIT 1
       
   266         end
   264       | _ => raise Match);
   267       | _ => raise Match);
   265 
   268 
   266 end;
   269 end;