= Overview Here's a list of relevant features in cobalt: .Coroutine types [cols="1,5"] |=== |<> |An eager coroutine returning a single result- consider it the default |<> |An eager coroutine that can yield multiple values. |<> |A lazy version of <> that can be spawned onto other executors. |<> |A coroutine similar to promise, without a handle |=== .Synchronization Functions [cols="1,5"] |=== |<> |A function that waits for one coroutine out of a set that is ready in a pseudo-random way, to avoid starvation. |<> |A function that waits for a set of coroutines and returns all of them as value or throws an exception if any awaitable does so. |<> |A function that waits for a set of coroutines and returns all of them as `result`, capturing all exceptions individually. |<> |A deterministic `race` that evaluates left-to-right. |=== .Utilities [cols="1,5"] |=== |<> |A thread-local utility to send values between coroutines. |<> |An async RAII helper, that allows async teardown when exceptions occur |=== .Reading guide [cols="1,3,3"] |=== |<> |A short introduction to C++ coroutines |Read if you've never used coroutines before |<> |An abbreviated high level view of the features and concepts |Read if you're familiar with asio & coroutines and want a rough idea what this library offers. |<> |Low level view of usages |Read if you want to get coding quickly |<> |API reference |Look up details while coding |<> |Some implementation details |Read if you're not confused enough |===