<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)">Hey Marc,</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)">

<br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)">Thanks for the pointers.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)">

<br></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

Does it only fail with the epoll backend? (try running with LIBEV_FLAGS=2<br>
in your environment to test) - it could be a bug in the code that<br>
generates fake events for files.<br></blockquote><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)">

​You're ​right, using select or poll works as expected and only epoll is affected.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

If, as I suspect from your program, you deliberately use watchers for file<br>
descriptors that are known files the fix or workaround is easy though:<br>
just do your I/O directly, that's faster and simpler.<br></blockquote><div><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)">​The attached program was just a simple example to reproduce the issue. As I explained in the first mail, I have a library which works directly over FDs which (most of the time) are TCP sockets but occasionally are 'regular' files.​</div>

<div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)">

So, assuming that epoll is really the problem, I'm guessing I should look somewhere in epoll_poll(), specifically near the "now synthesize events for all fds where epoll fails" comment?</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)">

Since I have never dug into libev's code, are there any pointers you can give me in the fake FD events area?</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)">

<br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)">Thanks again,</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;color:rgb(0,0,153)">

Assaf</div></div></div></div>