-
Notifications
You must be signed in to change notification settings - Fork 7
Description
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:
- Add a "
ready" or "poll" operation - or whatever is a good name for the operation - tooperation.hpp. - Add another
virtualfunction for the new operation tocontext_baseand all existing derived classes (currently, that is onlypoll_context). - Create a CPO for the new operation.
- 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.