<div dir="ltr">Thank you.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 28, 2016 at 11:44 AM, Chetan Mehrotra <span dir="ltr"><<a href="mailto:chetan.mehrotra@gmail.com" target="_blank">chetan.mehrotra@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Jun 28, 2016 at 11:15 AM, Navin Ipe<br>
<<a href="mailto:navin.ipe@searchlighthealth.com">navin.ipe@searchlighthealth.com</a>> wrote:<br>
> Even if the logs get accumulated in the output stream, why would the program<br>
> hang? I'd have assumed the OutputStream is on a separate thread.<br>
<br>
</span>That needs to be done by the caller i.e. program which is executing<br>
the process. Have a look at [1]. Note it has nothing specific to<br>
slf4j, it would happen with any code flow which writes to stdout<br>
<br>
----<br>
By default, the created subprocess does not have its own terminal or<br>
console. All its standard I/O (i.e. stdin, stdout, stderr) operations<br>
will be redirected to the parent process, where they can be accessed<br>
via the streams obtained using the methods<br>
getOutputStream(),getInputStream(), and getErrorStream(). The parent<br>
process uses these streams to feed input to and get output from the<br>
subprocess. Because some native platforms only provide limited buffer<br>
size for standard input and output streams, **failure to promptly<br>
write the input stream or read the output stream of the subprocess may<br>
cause the subprocess to block, or even deadlock.**<br>
----<br>
<br>
For an example see PumpStreamHandler [2] from commons-exec which does<br>
this properly.<br>
<span class="HOEnZb"><font color="#888888"><br>
Chetan Mehrotra<br>
[1] <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Process.html" rel="noreferrer" target="_blank">https://docs.oracle.com/javase/7/docs/api/java/lang/Process.html</a><br>
[2] <a href="https://github.com/apache/commons-exec/blob/trunk/src/main/java/org/apache/commons/exec/PumpStreamHandler.java" rel="noreferrer" target="_blank">https://github.com/apache/commons-exec/blob/trunk/src/main/java/org/apache/commons/exec/PumpStreamHandler.java</a><br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
slf4j-user mailing list<br>
<a href="mailto:slf4j-user@qos.ch">slf4j-user@qos.ch</a><br>
<a href="http://mailman.qos.ch/mailman/listinfo/slf4j-user" rel="noreferrer" target="_blank">http://mailman.qos.ch/mailman/listinfo/slf4j-user</a></div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Regards,<div>Navin</div></div></div>
</div>