On 10/20/2015 12:49 PM, Simone Bordet wrote:
>CharBuffer message = ... get buffer from pool or create new one ...
>
>... fill message with data ...
>
>CompletionStage<CharBuffer> cs = listener.onText(..., message, ...);
>
>if (cs != null) {
>     cs.thenAccept(cb -> {
>         if (cb != null) {
>             .... return cb to buffer pool ...
>         }
>     });
>}
>
>What do you think?
The ability to return null to be completely equivalent to returning
CompletableFuture.completedFuture(cb) would cover a common case
(synchronous consumption) without incurring in forced allocation.

Correct, but from API standpoint this would be worse. The act of explicitly passing back the reference to CharBuffer is a conscious transfer of ownership. Passing null is not and could be a source of bugs.

Regards, Peter

Reply via email to