Solaris support

Theo Schlossnagle jesus at omniti.com
Fri Dec 21 06:07:23 CET 2007


Hello all,

We've been running this for a while on Solaris.  Works really well.

We have some minor modifications to the source tree to make it work,  
but there is one minor design change to make things work well with our  
ports cache_acceptor.

What we need is the function in cache_acceptor.c:

void vca_return_session(struct sess *sp);

to be delegated to the acceptor implementations.  Solaris allows for  
very efficient user initiated notifications across its event system  
and that does that by talking directly to the port and not using the  
vca_pipes.

I'd like to have a return_session element added to the acceptor  
structure that is void (*return_session)(struct sess *);

And the vca_return_session function be:

void
vca_return_session(struct sess *sp)
{
   vca->return_session(sp);
}

I see this as a cleaner mechanism regardless as there is no reason for  
the generic cache_acceptor to care about int vca_pipes[2]; -- it's an  
implementation detail.  How's that sound?

I'd like to see this change in trunk before I submit my patch as it  
will pretty solidly affect how the return session stuff is handled in  
our changeset.

My current patch supports:
   sendfile and sendfilev on solaris
   using fcntl() when flock() is unavailable
   A cache_acceptor_ports.c that embraces Solaris' port eventing system

--
Theo Schlossnagle
Esoteric Curio -- http://lethargy.org/
OmniTI Computer Consulting, Inc. -- http://omniti.com/




More information about the varnish-dev mailing list