Aaron Bannert wrote: >On Thu, Jan 17, 2002 at 10:43:18PM -0800, Brian Pane wrote: >[snip] > >>>prefork was changed to do a apr_poll before the accept, even in the single >>>listen case, on Nov 10. The polls seem to get added to the herd of selects >>>that >>>wake up several times a second for no real good reason. We need to get rid >>>of >>>this poll once again. >>> > >We should get rid of the poll() for S_L_U_A, but I think that would >only treat the symptom, since it would come back when we had multiple >listeners. >
But in the multiple listener case, access to the poll will always be serialized, so we won't be vulnerable to a thundering herd problem, right? > Personally, I think poll() is itself the problem, and my >theory is that poll() has a thundering hurd problem on this particular >version of FreeBSD. We can try this out by #undef'ing HAVE_POLL in >srclib/apr/network_io/unix/poll.c, so we use select() instead, which >is what we used to do before Nov 10th. > Yep, I think the poll is the problem too. We ought to be able to remove it altogether in the single-listener case, though. --Brian
