Jeff Trawick wrote:
Brian Pane <[EMAIL PROTECTED]> writes:
To continue the recent discussions on the problems in the current
apr_poll API, here's a patch for apr_poll.h that illustrates my
proposed fix.
What I'm proposing here is to split the API into two parts:
- A lightweight, single-function poll API for use (only!)
with very small sets of descriptors.
Do we really need this API? What is the sort of APR application for
which the heavy-duty API is harmful?
This API really just adds programming convenience. There's nothing
it provides that can't be done with the general-purpose API. But the
main limitation of the general-purpose API is that, because it involves
some memory allocation, you can't use it for spontaneous, one-time poll
calls (like checking for readability on a single input socket if read
just returned EAGAIN) unless you can guarantee that the number of such
calls during the lifetime of the request pool has an upper limit. With
the general-purpose poll API, the solution is to hold onto your poll
object and re-use it if you have to poll the same descriptor(s) again.
The lightweight API just provides a simpler alternative for cases where
keeping track of the pollset object(s) would be prohibitively complex.
--Brian