Thanks. This looks good. I might additionally: - rename "phaser" to something more evocative, like "cf3Done" - add a checkCompletedXXX for the tardy future after the phaser arrives - check that cf3 result does not change when tardy future completes.
On Mon, Apr 15, 2013 at 10:03 AM, Chris Hegarty <chris.hega...@oracle.com>wrote: > On 15/04/2013 17:32, Martin Buchholz wrote: > >> This looks good, in that it fixes the flakiness. >> > > Thanks Martin. > > > I don't think we have tests yet that ensure Either completion when only >> one task completes. >> Consider writing one normal async supplier and one that waits on a >> latch; ensure that the Either future completes with the normal value, >> then trip the latch to allow the second one to finish. >> > > Great idea. Here you go: > > http://cr.openjdk.java.net/~**chegar/8012237/webrev.01/** > webrev/test/java/util/**concurrent/CompletableFuture/** > Basic.java.udiff.html<http://cr.openjdk.java.net/~chegar/8012237/webrev.01/webrev/test/java/util/concurrent/CompletableFuture/Basic.java.udiff.html> > > -Chris. > > >> >> On Mon, Apr 15, 2013 at 7:09 AM, Chris Hegarty <chris.hega...@oracle.com >> <mailto:chris.hegarty@oracle.**com <chris.hega...@oracle.com>>> wrote: >> >> I missed three cases in the previous change [1]. That will teach me >> for working on the weekend ;-) >> >> A full audit of the use of the XxxEitherXxx methods in the test has >> been done, and there are still three particular checks that are >> possibly incorrect. The failure is not always seen as this is racy >> code. >> >> http://cr.openjdk.java.net/~__**chegar/8012237/webrev.00/__** >> webrev/test/java/util/__**concurrent/CompletableFuture/_** >> _Basic.java.udiff.html<http://cr.openjdk.java.net/~__chegar/8012237/webrev.00/__webrev/test/java/util/__concurrent/CompletableFuture/__Basic.java.udiff.html> >> >> <http://cr.openjdk.java.net/~**chegar/8012237/webrev.00/** >> webrev/test/java/util/**concurrent/CompletableFuture/** >> Basic.java.udiff.html<http://cr.openjdk.java.net/~chegar/8012237/webrev.00/webrev/test/java/util/concurrent/CompletableFuture/Basic.java.udiff.html> >> > >> >> Thanks, >> -Chris. >> >> [1] >> http://mail.openjdk.java.net/_**_pipermail/core-libs-dev/2013-** >> __April/016013.html<http://mail.openjdk.java.net/__pipermail/core-libs-dev/2013-__April/016013.html> >> <http://mail.openjdk.java.net/**pipermail/core-libs-dev/2013-** >> April/016013.html<http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-April/016013.html> >> > >> >> >>