Just to chime in, 
I had to implement something similar to what Joe suggested to solve the
problem. An add queue and a delete queue in addition I had to create a
method for poking the select to wake up and cycle through the additions and
subtractions.  Since most of the additions and subtractions were on either a
close or an accept, the poking of the Q was really only need when I wanted
to add the APR_POLLOUT event to the select.  In my experience adding and
removing events happens quite often in all socket programs.  
It would be extremely useful if this functionality was built into the apr
and was thread safe.

Don't the pools use mutexing already, is this platform specific?



-----Original Message-----
From: Paul Querna [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 23, 2004 11:09 AM
To: Joe Orton
Cc: dev@apr.apache.org
Subject: Re: Pollset: Thread Safe & More


On Thu, 2004-09-23 at 11:38 +0100, Joe Orton wrote:
> So I'm worried this patch is really solving the problem in the wrong
> place.  The thing you are exporting here in the APR API, "is the
> apr_pollset_* interface thread-safe in _add and _remove", seems really
> horrible.  Either an API is thread-safe, or it isn't.  Making that a
> *per-platform* flag seems like really bad design.

I agree with your conclusion here.  It isn't a good design to have
platform specific properties like thread safety.

Part of my goal was to avoid using KQueue/EPoll directly in the Event
MPM, and to keep it using the APR Generic Functions.  I think that I
will just make an ap_ex_pollset_* set of functions to wrap EPoll/KQueue
and include them directly in the Event MPM.

-Paul Querna


© 2004 OpenLink Financial 

Copyright in this message and any attachments remains with us.  It is
confidential and may be legally privileged.   If this message is not 
intended for you it must not be read, copied or used by you or 
disclosed to anyone else.   Please advise the sender immediately if 
you have received this message in error.

Although this message and any attachments are believed to be free of 
any virus or other defect that might affect any computer system into 
which it is received and opened, it is the responsibility of the 
recipient to ensure that it is virus free and no responsibility 
is accepted by Open Link Financial, Inc. for any loss or damage in any 
way arising from its use.


Reply via email to