src/Pure/System/isabelle_process.ML
changeset 75577 c51e1cef1eae
parent 73578 629868f96c81
child 76804 3e8340fcaa16
equal deleted inserted replaced
75576:8c5eedb6c983 75577:c51e1cef1eae
    94 
    94 
    95 
    95 
    96     (* streams *)
    96     (* streams *)
    97 
    97 
    98     val (in_stream, out_stream) = Socket_IO.open_streams address;
    98     val (in_stream, out_stream) = Socket_IO.open_streams address;
    99     val _ = Byte_Message.write_line out_stream password;
    99     val _ = Byte_Message.write_line out_stream (Bytes.string password);
   100 
   100 
   101     val _ = TextIO.StreamIO.setBufferMode (TextIO.getOutstream TextIO.stdOut, IO.LINE_BUF);
   101     val _ = TextIO.StreamIO.setBufferMode (TextIO.getOutstream TextIO.stdOut, IO.LINE_BUF);
   102     val _ = TextIO.StreamIO.setBufferMode (TextIO.getOutstream TextIO.stdErr, IO.LINE_BUF);
   102     val _ = TextIO.StreamIO.setBufferMode (TextIO.getOutstream TextIO.stdErr, IO.LINE_BUF);
   103     val _ = BinIO.StreamIO.setBufferMode (BinIO.getOutstream out_stream, IO.BLOCK_BUF);
   103     val _ = BinIO.StreamIO.setBufferMode (BinIO.getOutstream out_stream, IO.BLOCK_BUF);
   104 
   104 
   156       let
   156       let
   157         val _ =
   157         val _ =
   158           (case Byte_Message.read_message in_stream of
   158           (case Byte_Message.read_message in_stream of
   159             NONE => raise Protocol_Command.STOP 0
   159             NONE => raise Protocol_Command.STOP 0
   160           | SOME [] => Output.system_message "Isabelle process: no input"
   160           | SOME [] => Output.system_message "Isabelle process: no input"
   161           | SOME (name :: args) => Protocol_Command.run name args)
   161           | SOME (name :: args) => Protocol_Command.run (Bytes.content name) args)
   162           handle exn =>
   162           handle exn =>
   163             if Protocol_Command.is_protocol_exn exn then Exn.reraise exn
   163             if Protocol_Command.is_protocol_exn exn then Exn.reraise exn
   164             else (Runtime.exn_system_message exn handle crash => recover crash);
   164             else (Runtime.exn_system_message exn handle crash => recover crash);
   165       in protocol_loop () end;
   165       in protocol_loop () end;
   166 
   166