This module contains combinators for futures. The when_* functions allow you to turn multiple futures into a single future which is ready when all, any, some, or each of the given futures are ready. The wait_* combinators are equivalent to the when_* functions except that they do not return a future. Those wait for all futures to become ready before returning to the user. Note that the wait_* functions will rethrow one of the exceptions from exceptional futures. The wait_*_nothrow combinators are equivalent to the wait_* functions exception that they do not throw if one of the futures has become exceptional.

The split_future combinator takes a single future of a container (e.g. tuple) and turns it into a container of futures.

See lcos_local, synchronization, and async_distributed for other synchronization facilities.

See the API reference of this module for more details.