[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Gerd Stolpmann <info@g...> |
| Subject: | Re: [Caml-list] input_line is blocking |
On 2002.05.03 14:18 Warp wrote: > Hi > I'm running "ocamlc" by using Unix.open_process_full in order to write an > automatic compiler. > Right now, it's working fine, but I got now a problem with input_line : > > after running open_process_full , i'm first reading all its stdout lines of > the process until End_of_file is raised, then all its stderr lines using the > same function. > > It has work fine for few weeks now, but now I found that in some cases > input_line will block, not raising End_of_file. I wrote a library exactly for such advanced usage of sub processes: http://www.ocaml-programming.de/packages/documentation/shell/ For example, to call ocamlc one would do: open Shell let stdout = Buffer.create 16 in let stderr = Buffer.create 16 in call ~stdout:(to_buffer stdout) ~stderr:(to_buffer stderr) [ cmd "ocamlc" args ] The Shell library includes the necessary logic to read from multiple file descriptors (using Unix.select). One drawback: Shell works only for Unix (because of Unix.fork). I think that you have to use multi-threading for a platform-independent solution. Gerd -- ---------------------------------------------------------------------------- Gerd Stolpmann Telefon: +49 6151 997705 (privat) Viktoriastr. 45 64293 Darmstadt EMail: gerd@gerd-stolpmann.de Germany ---------------------------------------------------------------------------- ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners