[concurrency-interest] Reusing CompletableFuture

Viktor Klang viktor.klang at gmail.com
Sun Jul 24 14:07:22 EDT 2016


A possible solution is to return CompletionStage rather than
CompletableFuture.

-- 
Cheers,
√

On Jul 24, 2016 18:23, "Martin Buchholz" <martinrb at google.com> wrote:

> Don't reuse CompletableFutures.
> Most obviously because they're mutable.
>
> See also https://bugs.openjdk.java.net/browse/JDK-8161600
>
> On Sun, Jul 24, 2016 at 5:57 AM, Pavel Rappo <pavel.rappo at gmail.com>
> wrote:
>
>> Hi,
>>
>> Is it generally safe to reuse an instance of CompletableFuture? Or am I
>> risking
>> with memory leaks due to dependants build up?
>>
>> Say, I have a method that returns a CF. In some cases it may return a CF
>> straight away indicating that the action has been already done. Should I
>> always
>> create a new completed CF, or can I reuse a pre-cached one?
>>
>> There's a comment in the class itself, but I'm not sure I understand it
>> enough
>> to make a conclusion:
>>
>>      * ...Without precautions, CompletableFutures would be prone to
>>      * garbage accumulation as chains of Completions build up, each
>>      * pointing back to its sources. So we null out fields as soon as
>>      * possible.  The screening checks needed anyway harmlessly ignore
>>      * null arguments that may have been obtained during races with
>>      * threads nulling out fields.  We also try to unlink non-isLive
>>      * (fired or cancelled) Completions from stacks that might
>>      * otherwise never be popped: Method cleanStack always unlinks non
>>      * isLive completions from the head of stack; others may
>>      * occasionally remain if racing with other cancellations or
>>      * removals...
>>
>> Thanks,
>> -Pavel
>> _______________________________________________
>> Concurrency-interest mailing list
>> Concurrency-interest at cs.oswego.edu
>> http://cs.oswego.edu/mailman/listinfo/concurrency-interest
>>
>
>
> _______________________________________________
> Concurrency-interest mailing list
> Concurrency-interest at cs.oswego.edu
> http://cs.oswego.edu/mailman/listinfo/concurrency-interest
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cs.oswego.edu/pipermail/concurrency-interest/attachments/20160724/613062ec/attachment.html>


More information about the Concurrency-interest mailing list