-
Notifications
You must be signed in to change notification settings - Fork 633
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Using a minimal executor causes compile errors with beast::websocket #2854
Comments
The issue is reproducible with the following too: asio::io_context ioc;
auto e = asio::get_associated_immediate_executor([] {}, executor{ &ioc }); It seems we need to check for the existence of the associated immediate executor before attempting to use it in a dispatch operation. There is a possibility that this might be a bug in Asio as well, which I am currently investigating. |
Thanks for having a look at this! |
This seems to be a bug in Asio. I've made a pull request for it: chriskohlhoff/asio#1465 // static constexpr asio::execution::blocking_t::never_t query(asio::execution::blocking_t) noexcept
// {
// return asio::execution::blocking.never;
// } |
Beast 351 from boost 1.84
For some background, I'm trying to use boost::beast with my own executor, based on the minimal example here.
However, it seems like something inside beast's websocket is doing something funny with the executor's require interface, and leading to compile errors.
For example, imagine a simple executor that's merely a forwarder to
asio::io_context
:Creating sockets with this executor works just fine:
But creating websockets leads to compile errors (for example, in handshake):
The require api is admittedly super clunky, so it's not at all clear what else the executor needs to make beast happy.
The text was updated successfully, but these errors were encountered: