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