Thank you. On Tue, Jun 28, 2016 at 11:44 AM, Chetan Mehrotra <[email protected] > wrote:
> On Tue, Jun 28, 2016 at 11:15 AM, Navin Ipe > <[email protected]> wrote: > > Even if the logs get accumulated in the output stream, why would the > program > > hang? I'd have assumed the OutputStream is on a separate thread. > > That needs to be done by the caller i.e. program which is executing > the process. Have a look at [1]. Note it has nothing specific to > slf4j, it would happen with any code flow which writes to stdout > > ---- > By default, the created subprocess does not have its own terminal or > console. All its standard I/O (i.e. stdin, stdout, stderr) operations > will be redirected to the parent process, where they can be accessed > via the streams obtained using the methods > getOutputStream(),getInputStream(), and getErrorStream(). The parent > process uses these streams to feed input to and get output from the > subprocess. Because some native platforms only provide limited buffer > size for standard input and output streams, **failure to promptly > write the input stream or read the output stream of the subprocess may > cause the subprocess to block, or even deadlock.** > ---- > > For an example see PumpStreamHandler [2] from commons-exec which does > this properly. > > Chetan Mehrotra > [1] https://docs.oracle.com/javase/7/docs/api/java/lang/Process.html > [2] > https://github.com/apache/commons-exec/blob/trunk/src/main/java/org/apache/commons/exec/PumpStreamHandler.java > _______________________________________________ > slf4j-user mailing list > [email protected] > http://mailman.qos.ch/mailman/listinfo/slf4j-user > -- Regards, Navin
_______________________________________________ slf4j-user mailing list [email protected] http://mailman.qos.ch/mailman/listinfo/slf4j-user
