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