Future cancellation

Jonas Sicking jonas at sicking.cc
Tue Apr 30 19:56:40 PDT 2013


On Tue, Apr 30, 2013 at 7:37 PM, Jonas Sicking <jonas at sicking.cc> wrote:
> Then there's of course the issue of what we should do with APIs that
> combine several Futures into a single one. Like Future.every() etc.
>
> Similarly, there's also the issue of what to do with chaining.
>
> I'm tempted to say that if you create combined or dependent Futures,
> you still only have the ability to cancel them through the original
> CancelableFuture.
>
> Like others have pointed out here, we need to keep "operations"
> separate from "delivering results". Combined and dependent Futures are
> combining the delivering of results, but they don't combine the
> operations.

There are actually some very big similarities here with
ProgressFuture. There too we are facing the question of what to do if
multiple Futures, some of which are ProgressFutures, are combined
using Future.every, or what to do if a Future is chained after a
ProgressFuture.

It isn't actually surprising that the same issues arise.
ProgressFuture basically delivers progress about an "operation" rather
than a "result".

My gut instinct is still the same. Combining results using dependent
or combined Futures is great. However trying to combine operations
seems like a lot of complexity and easily a source of confusion.

/ Jonas


More information about the es-discuss mailing list