Skip to content
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

Support a "readiness" result #8

Open
dietmarkuehl opened this issue Sep 17, 2024 · 0 comments
Open

Support a "readiness" result #8

dietmarkuehl opened this issue Sep 17, 2024 · 0 comments

Comments

@dietmarkuehl
Copy link
Collaborator

dietmarkuehl commented Sep 17, 2024

Various third party libraries will do their own I/O but they can key off a suitable readiness indication from the library. To support bindings of sender/receiver interfaces hooking into an existing run-loop it is necessary to actually support a corresponding readiness indicator. The implement is effectively similar to existing asynchronous operations except that the readiness operation doesn't actually do anything at all upon the system indicating readiness.

The implementation probably needs to do the following:

  1. Add a "ready" or "poll" operation - or whatever is a good name for the operation - to operation.hpp.
  2. Add another virtual function for the new operation to context_base and all existing derived classes (currently, that is only poll_context).
  3. Create a CPO for the new operation.
  4. This operation is not, yet, represented in the proposal and it needs to be added the actual proposal.

On poll(2), epoll(7), or kqueue(2) based systems that could actually be the basis operations used to implement all the operations. However, when using a system interface indicating completion (e.g., io_uring or IOCP) the actual operation needs to be submitted requiring additional information when submitting the request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant