8012237: CompletableFuture/Basic.java still fails intermittently (original) (raw)

Chris Hegarty chris.hegarty at oracle.com
Mon Apr 15 17:41:35 UTC 2013


On 15/04/2013 18:32, Martin Buchholz wrote:

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.

Thanks Martin, I'll make these changes before the pushing.

-Chris.

On Mon, Apr 15, 2013 at 10:03 AM, Chris Hegarty <chris.hegarty at oracle.com <mailto: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> <mailto:chris.hegarty at oracle._com_ _<mailto: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