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