ASIO & CORO
This is a collection of samples and documentation showing how to use C++20 Coroutines with ASIO.
Contents:
- Part I: Form Sync to Async to As-Sync
- Benchmarks
- Resources
- Process Cancellation Examples
- Ping
- PingSpawned
- PingParallelGroup
- WHEN_io_object_is_cancelled_THEN_exception_is_thrown
- WHEN_io_object_is_cancelled_THEN_cancellation_state_is_none
- WHEN_io_object_is_cancelled_THEN_remaining_buffer_is_printed
- WHEN_io_object_is_closed_THEN_log_function_is_cancelled_reliably
- CancellationSlot
- CancelAfter
- CancelFixture
- WHEN_exception_from_log_is_caught_THEN_rethrows_on_next_await
- WHEN_log_returns_error_as_tuple_THEN_rethrows_on_next_await
- WHEN_cancellation_state_is_reset_THEN_does_not_throw_on_next_await
- WHEN_log_is_resumed_after_cancellation_THEN_ping_completes
- DISABLED_WHEN_log_is_detached_THEN_continues_reading_from_pipe
- WHEN_log_uses_promise_THEN_is_started_immediately
- WHEN_log_uses_promise_THEN_is_cancelled_on_destruction
- WHEN_promise_is_awaited_THEN_output_is_complete
- WHEN_descriptors_are_kept_open_THEN_times_out
- WHEN_wait_for_pipe_long_enough_THEN_sees_eof
- WHEN_parallel_group_is_cancelled_total_THEN_logging_continues
- WHEN_parallel_group_operator_THEN_cancellation_fails
- WHEN_redirect_cancellation_slot_manually_THEN_output_is_complete
- WHEN_child_is_terminated_THEN_exits_with_sigterm
- WHEN_child_is_killed_THEN_exits_with_sigkill