Justin Erenkrantz wrote:
The problem is that there is no reliable way to determine if there is more data in the input filters without actually invoking a read.
that sucks IMO, but it does sounds like how the code works today. We do socket read() syscalls during the MODE_EATCRLF calls that are almost always unproductive. They could be optimized away. I don't believe 1.3 does these extra read()s.
Connection-level filters like mod_ssl would have to be rewritten to be async.
or to simply report whether they held on to any data.
SPECULATIVE with APR_NONBLOCK_READ will come the closest to achieving the goal though. However, I expect mod_ssl isn't going to work quite right with non-blocking reads.
Perhaps we could disable the use of the event thread when are filters like mod_ssl for now, and see what we can do about true pipelining for non-ssl.
Greg
