suspend_indefinitely

suspend_indefinitely is an operation that suspends until it is cancelled.

Prototype

sender suspend_indefinitely(cancellation_token cancellation);

Arguments

  • cancellation - the cancellation token to use.

Return value

This function returns a sender of unspecified type. The sender doesn't return any value, and completes when cancellation is requested.

Examples

async::cancellation_event ce;

auto coro = [] (async::cancellation_token ct) -> async::detached {
	std::cout << "Before await" << std::endl;
	co_await async::suspend_indefinitely(ct);
	std::cout << "After await" << std::endl;
};

coro(ce);
std::cout << "Before cancel" << std::endl;
ce.cancel();
std::cout << "After cancel" << std::endl;

Output:

Before await
Before cancel
After await
After cancel