Very helpful. Thank you for adding the comments. Mike
On Jan 16 2014, at 03:26 , Paul Sandoz <paul.san...@oracle.com> wrote: > > On Jan 10, 2014, at 2:42 PM, Paul Sandoz <paul.san...@oracle.com> wrote: >> I have also removed the inconsistently applied synchronized block. Either we >> apply it consistently to reporting or not at all. It was originally there >> because we were not sure that the "happens-before" relationship [1] between >> elements would be guaranteed. However, ForEachOrderedTask sets up such a >> relationship via completion counts to ensure leaf nodes complete in >> encounter order (if any) where only one leaf can be completing (which was >> left most leaf that was not completed), hence stamping a fence in the ground >> at these point seems redundant (at least i cannot see its value but could be >> missing something subtle). >> > > I updated with some more comments explaining how the "happens-before" is > preserved: > > http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8029452-ForEachOrdered/webrev/ > > Paul.