8012237: CompletableFuture/Basic.java still fails intermittently
Martin Buchholz
martinrb at google.com
Mon Apr 15 17:32:45 UTC 2013
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.hegarty at 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.hegarty at oracle.com
>> <mailto:chris.hegarty at oracle.**com <chris.hegarty at 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>
>> >
>>
>>
>>
More information about the core-libs-dev
mailing list