Hi ...

Sorry to write in this forum, but I have no idea as the where else to ask :-)

I have been using libev for a while in a project at work (currently 4.25), with success for quite a while, and I have now expanded the usage in our service to also include the accepting of new connection (used blocking accept before).

I have a callback that gets called on every accept (where I loop on EAGAIN to empty the backlog), and for each new socket I make an protocol structure (class really). I read from the socket, and sometime it gives me EAGAIN and sometimes i get data, all this is working as it should, but !!!

I did like to try our the server by using apache benchmark, and this worked really nice in the beginning (both localhost, and real lan), but when i go up to about 20k connections, and concurrency of 500 i gets a few sockets that I can't read from, at all. recv returns -1 and EAGAIN, but it never gets any data.

I order to check for any missing select errors (just a wild guess) I also setup a reread timer when recv returns -1 (and EAGAIN) in order to try read again, even on missing read event, but data still never arrives.

Are there something I am not aware of, or have others seen something like this ? I really appreciate any comments, I have tried google and found nothing useful on this specific subject.

I could issolate the code in an small issolated example, but it really would be a verbose example, but if my descriptions does not provide enough information, this could be done too.

Thanks for reading so far

Regards

/BL


_______________________________________________
libev mailing list
libev@lists.schmorp.de
http://lists.schmorp.de/mailman/listinfo/libev

Reply via email to