equal
deleted
inserted
replaced
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; |