[EMAIL PROTECTED] wrote:

As promised, a new implementation of apr_poll, which should improve
performance.  I have only implemented the HAVE_POLL case so far, but the
API is 99% the same, so I have no fear that the others are not
possible.  In fact, the ONLY change to the function API, is that
apr_poll() itself takes one more argument.  The types however are now
complete, and apr_poll can be used on both files and sockets (as well as
anything else we want to add).


I really like the basic design concept for this. It provides a good abstraction that would allow us to plug in /dev/poll in the future if needed.

A couple of suggestions on the details:

* Instead of having apr_poll_setup just create an array of poll
 objects, it may be more flexible to have it create a wrapper object
 that contains the array.  (Just in case we need to add anything else
 to it in the future, like a file handle for /dev/poll.)

* The apr_poll_socket_add function looks like it's O(n).  That could be
 a problem if we ever need to poll a large number of descriptors (like
 in an event-loop server).  Adding a faster lookup would make the data
 structure more complicated, though.  Maybe it's best to just stick
 with the O(n) array approach for now, but encapsulate the data structures
 so that we can swap in a new design later if needed?

--Brian




Reply via email to