> > 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. This is basically > the current implementation, but with a limit on the number > of descriptors that it will accept. With this limit, we > can put the temporary pollfd array on the stack in apr_poll() > to eliminate the memory leak. > > - A general-purpose poll API for larger sets of descriptors. > This one is an abstract data type, accessible only through > functions, so that we can do internal optimizations in the > future (like replacing poll with /dev/poll on supported > platforms).
Hummm..... I was thinking we would create an entirely new set of APR calls to encapsulate an event drivent network i/o interface (/dev/poll, KQEnqueue/KQDequeue, IOCompletion ports, etc.). I'll try to work up an API this week. Bill