Hope, you don't mind that I added the dev mailing list. Wanted to show off the work you have done...

On Nov 2, 2009, at 7:36 PM, Theo Schlossnagle wrote:


On Oct 30, 2009, at 12:29 PM, Bryan Call wrote:

We left in all the Solaris code knowing you might want to port it.

There is one issue that I know of is we didn't handle not breaking other OSes when we switched from poll to epoll. When doing the epoll project we didn't have open sourcing the code in mind and figured we would only use the code on Linux.


I've got traffic server itself built using Sun Studio C++ compiler. I can't get the logstats stuff to compile.

It doesn't function due to the epoll stuff. I've added ports support in (Solaris' alternative to epoll). One large semantic difference between epoll and ports is giving me some issues. In ports, when you "get" (similar to epoll_wait) the event is removed from the pollset and must be reassociated (like edge triggered to a further extent). The epoll code you added assumes the added epoll event remains in the set (which it does).

So, I've for the code complete and compiling (for the server itself) I just need to track down the issues with reregistering the events after failed non-blocking iops (EAGAIN).


We should have some checks in the code where we continue reading until we get an EAGAIN. I don't believe we do the optimization where you can read until you get a partial buffer.

I'd be happy to show you what I've got so far, not too much code change:

; svn diff | wc -l
   2660


Seems like a few lines to review...

-Bryan

Reply via email to