Il gio 14 dic 2023, 21:12 Stefan Hajnoczi <[email protected]> ha scritto:
> Since the fd may be bypassed until ->io_poll_end() returns, we must poll > one last time to check if an event snuck in right at the end without > making the fd readable. If polling detected an event, then we must do > something. We cannot drop the event I agree that in general we cannot. I wonder however if, in the (already racy) case of a concurrent aio_set_fd_handler(ctx, fd, NULL, ...), you really need to call poll_ready here. > > (An alternative is to poll once before monitoring the fd again. That way > pending events are detected even if the fd wasn't readable. That is > currently not the way aio-posix.c works though.) > Yes, that would be a change. If I understood correctly Hanna's suggestions in the issue, she also mentioned doing a manual virtqueue notification before monitoring restarts. So basically my idea boils down to implementing that, and then cleaning up everything on top. Paolo > Stefan >
