The current support for I/O event completion notification via eventfd(2) requires use of a single file descriptor for all notifications. Since the notification (e.g. via poll) occurs on the event FD and not the file FD, there is currently no way to determine how many and which requests have completed after the notification and before blocking in ioqueue_reap for one-or-more callback executions.
Using multiple event file descriptors would be useful in more complex use cases in which different subsystems of the same application or binary may wish to utilize the library for I/O and e.g. have different event notification or submission priorities or requirements.
Action Items
- Change the
ioqueue_eventfd API method and documentation to open/create a new file descriptor for notification events, if the configured backend supports I/O event notification via poll.
- Add an optional
eventFD parameter to the ioqueue_pread/pwrite methods.
The current support for I/O event completion notification via
eventfd(2)requires use of a single file descriptor for all notifications. Since the notification (e.g. viapoll) occurs on the event FD and not the file FD, there is currently no way to determine how many and which requests have completed after the notification and before blocking inioqueue_reapfor one-or-more callback executions.Using multiple event file descriptors would be useful in more complex use cases in which different subsystems of the same application or binary may wish to utilize the library for I/O and e.g. have different event notification or submission priorities or requirements.
Action Items
ioqueue_eventfdAPI method and documentation to open/create a new file descriptor for notification events, if the configured backend supports I/O event notification viapoll.eventFDparameter to theioqueue_pread/pwritemethods.