RFR 9: 8077350 Process API Updates Implementation Review (original) (raw)

Roger Riggs Roger.Riggs at Oracle.com
Wed May 20 16:03:49 UTC 2015


Hi Peter,

yes, your patch does reduce the code quite a bit except where the complexity is needed.

The commonPool does have a soft limit (256/system property) on the number of compensating processes it will start. That limit would only come into play for subclasses of Process that did not properly override onExit to delegate to the underlying builtin Process implementation. So, probably not a big risk.

It might be desirable to put the loop and exception handling inside the ManagedBlocker but the difference is only in the creation of additional inner class instances in the case of InterruptedExceptions.

Thanks, Roger

On 5/20/2015 4:39 AM, Peter Levart wrote:

Hi Roger,

I looked at Martin's idea and I think that we don't need the AsyncExecutor at all (it already sounds like I hate it ;-). Using ManagedBlocker, a ForkJoinPoll can compensate and grow it's pool as needed when Process.waitFor() blocks. So we could leverage this feature and simplify things even further: http://cr.openjdk.java.net/~plevart/jdk9-sandbox/JDK-8046092-branch/webrev.03/

Passing a commonPool() to xxxAsync() methods is unneeded as the default is exactly the same. If CompletableFuture ever gets a feature to specify a default Executor for all it's descendants, then we can revisit this if needed. What do you think? Regards, Peter On 05/19/2015 10:15 PM, Roger Riggs wrote: The webrev, javadoc, and specdiffs have been updated to address recent recommendations:

Please review and comment: Webrev: http://cr.openjdk.java.net/~rriggs/webrev-ph/ (May 19) javadoc: http://cr.openjdk.java.net/~rriggs/ph-apidraft/ (May 19) Diffs of the spec/javadoc from previous draft: http://cr.openjdk.java.net/~rriggs/ph-diffs-2015-05-19/overview-summary.html

Thanks, Roger



More information about the core-libs-dev mailing list