[concurrency-interest] CompletableFuture.supply

Doug Lea dl at cs.oswego.edu
Wed Mar 11 19:23:39 EDT 2015


On 03/11/2015 12:11 PM, Pavel Rappo wrote:
> Hi, given [1] I wonder if anyone thinks this could be a useful method to be
> added to j.u.c.CompletableFuture:
>
>      public static <U> CompletableFuture<U> supply(Supplier<U> supplier)
>
> Just a completable future that is to be completed by one of those who claim its
> result. Right now I simulate it like this:
>
>      CompletableFuture.supply(supplier, Runnable::run)       (A)
>
> or a less flexible way [2] like this:
>
>      CompletableFuture.complete( supplier.get() )            (B)

Or:
    CompletableFuture.completedFuture(supplier.get())

One reason for not defining non-async supply was that one of the
above would always be applicable. But if there's a missing use case,
please argue for adding this.

-Doug


>
> My concern is that it's not very pretty. Also it is the only method which
> missing its non-async counterpart (not that I have any kind of method-symmetry
> OCD, but anyway).
>
> -------------------------------------------------------------------------------
> [1] http://cs.oswego.edu/pipermail/concurrency-interest/2015-January/013600.html
> [2] In case "B" I'm starting (unconditionally and synchronously) a possibly
>      heavy computation. Which may not be needed at all (e.g. theAcceptEither).
> _______________________________________________
> Concurrency-interest mailing list
> Concurrency-interest at cs.oswego.edu
> http://cs.oswego.edu/mailman/listinfo/concurrency-interest
>



More information about the Concurrency-interest mailing list