src/Pure/System/isabelle_process.ML
changeset 38254 fb1b255d6e36
parent 38253 3d4e521014f7
child 38256 d2f094d97c91
equal deleted inserted replaced
38253:3d4e521014f7 38254:fb1b255d6e36
    61   in loop end;
    61   in loop end;
    62 
    62 
    63 fun rendezvous f fifo =
    63 fun rendezvous f fifo =
    64   let
    64   let
    65     val path = File.platform_path (Path.explode fifo);
    65     val path = File.platform_path (Path.explode fifo);
    66     val result = f fifo;  (*block until peer is ready*)
    66     val result = f fifo;  (*should block until peer is ready*)
    67     val _ = OS.FileSys.remove path;  (*ready; prevent future access -- potential race condition*)
    67     val _ =
       
    68       if String.isSuffix "cygwin" ml_platform then ()  (*Cygwin 1.7: no proper blocking on open*)
       
    69       else OS.FileSys.remove path;  (*prevent future access*)
    68   in result end;
    70   in result end;
    69 
    71 
    70 in
    72 in
    71 
    73 
    72 fun setup_channels in_fifo out_fifo =
    74 fun setup_channels in_fifo out_fifo =