chris.hegarty at oracle.com
Fri Apr 16 16:00:34 UTC 2010
I filed the following to track this:
6944584: Improvements to subprocess handling on Unix
I took a look at the preliminary changes.
* I'm not sure we can remove any previous authors names.
* I assume the second part, buffering of data after process
termination has not been implemented yet, right?
Otherwise look good.
You may want to take a look at these changes also.
Martin Buchholz wrote:
> Chris and/or Alan,
> I am planning some improvements to Process.
> Please file a bug.
> Synopsis: Improvements to subprocess handling on Unix
> Looking at UNIXProcess.java.linux, there are a number of possible improvements:
> The "process reaper" thread should run in a thread pool to save on
> thread creation in case of repeated process creation. Its stack size
> should be small.
> If the process reaper thread throws a non-IOException (e.g. OOME)
> the thread creating the subprocess will hang,
> waiting for a signal from the reaper thread.
> The JDK knows when the subprocess terminates.
> At that time, we cannot yet close the streams,
> because there may still be unread buffered data, but...
> the file descriptors underlying the subprocess streams
> can be drained, then closed, and the drained bytes can
> be added to the internal buffer. This will solve most cases
> of (pandemic) poor file stream hygiene leading to
> file descriptor exhaustion or simply poor performance.
> Preliminary fix here:
More information about the core-libs-dev