> 1. "the documentation wrongly claimed that user may modify fd > and events members in io watchers when the watcher was stopped." means: > Can't modify internal members even if I/O watcher has been stopped?
Yes - you have to use ev_io_set or the new ev_io_modify, direct modification does not work properly as the io watcher caches some kernel state info. If you modified these members directly, it might or might not work correctly, even in old versions. To be specific, in most versions of libev, I/O watchers assume that if the fd wasn't changed via ev_io_set, it will refer to the same underlying file description, unless you use ev_io_set. If you modify the fd directly, you might not receive events for it, and you might even receive events for fds that are no longer open (mostly due to the braindamage that is epoll). > 2. What is the scenario where timerfd checks "Time Jump" cannot > wake up? why a minute? I don't know of any scenarion where timerfds fail - I assume you refer to something in the Changes file, but what exactly? The only thing that changed is that libev does not wake up roughly every minute when it is sure it can keep the time without it. > 3. What are the special reasons why Linux AIO is no longer the > default backend? It never was the default backend, it merely was available for use by default. This is no longer the case - compiled libev versions no longer support the aio backend by default. The reasons are not that special: linux aio is buggy, extremely slow and suffers from a multitude of arbitrary limitations, which is why it couldn't be a default backend. It is expected that the io_uring interface will eventually replace the epoll backend, although at the moment it's not there yet. So basically, it is useless dead code that is of little to no use to anybody, and would only bloat the binary. -- The choice of a Deliantra, the free code+content MORPG -----==- _GNU_ http://www.deliantra.net ----==-- _ generation ---==---(_)__ __ ____ __ Marc Lehmann --==---/ / _ \/ // /\ \/ / schm...@schmorp.de -=====/_/_//_/\_,_/ /_/\_\ _______________________________________________ libev mailing list libev@lists.schmorp.de http://lists.schmorp.de/mailman/listinfo/libev