Christopher Kohlhoff
495e6367af
Add experimental support for channels.
...
This adds experimental::channel and experimental::concurrent_channel.
Channels may be used to send completions as messages. For example:
// Create a channel with no buffer space.
channel<void(error_code, size_t)> ch(ctx);
// The call to try_send fails as there is no buffer
// space and no waiting receive operations.
bool ok = ch.try_send(asio::error::eof, 123);
assert(!ok);
// The async_send operation blocks until a receive
// operation consumes the message.
ch.async_send(asio::error::eof, 123,
[](error_code ec)
{
// ...
});
// The async_receive consumes the message. Both the
// async_send and async_receive operations complete
// immediately.
ch.async_receive(
[](error_code ec, size_t n)
{
// ...
});
2021-11-04 01:56:32 +11:00
..
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-11-04 01:56:32 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:37:47 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-07-02 12:29:57 +10:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-07-01 10:52:01 +10:00
2021-02-25 08:29:05 +11:00
2021-07-01 10:52:01 +10:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-10-25 12:15:08 +11:00
2021-10-25 12:15:08 +11:00
2021-02-25 08:29:05 +11:00
2021-10-27 13:47:03 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-10-25 12:15:08 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-10-27 13:47:03 +11:00
2021-06-28 10:10:07 +10:00
2021-06-05 17:43:31 +10:00
2021-10-29 20:54:56 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-07-01 10:52:01 +10:00
2021-07-01 10:52:01 +10:00
2021-07-01 10:52:01 +10:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-06-28 10:11:36 +10:00
2021-10-27 13:47:03 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-10-25 12:15:08 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-10-29 20:54:56 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-11-04 01:34:52 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-10-27 13:47:03 +11:00
2021-02-25 08:29:05 +11:00
2021-10-29 20:54:56 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-11-04 01:34:52 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-07-11 22:03:29 +10:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00
2021-10-27 13:47:03 +11:00
2021-02-25 08:29:05 +11:00
2021-02-25 08:29:05 +11:00