Thanks a lot!

I've made a hack which puts the suspeded connection back in the queue:
https://gist.github.com/ArtemGr/9887564
with that the test case works! (`ab` no longer timeouts).

Would it make sense to submit a feature request along these lines?
Should I make a patch or leave it to the more experienced Apache developers?

It looks like new APIs are needed -- either in a new timed callback
> API, or something usable from the callback function.
>

Timed callback is just a convenience, the real code might use its own even
loop and/or threads, so something usable from the callback is definitely
better.

BTW, Cherokee has an interesting way about that, allowing the connection to
wait on an arbitrary file descriptor. So one can make a `pipefd` file
descriptor just to wake the connection up:
https://gist.github.com/ArtemGr/5797289

On Mon, Mar 31, 2014 at 5:00 AM, Eric Covener <cove...@gmail.com> wrote:

> Without looking at it too deeply, It seems like suspendable handlers
> (that continue on as HTTP) are not really working.
>
> When your timed callback ends, the underlying socket is not in the
> "keepalive" queue anymore in the MPM. The way it normally gets back
> into that queue is by ap_process_request ending up with state ==
> CONN_STATE_WRITE_COMPLETION, you can see that it doesn't take much to
> hook it back into the keepalive queue in event.c.
>
> It looks like new APIs are needed -- either in a new timed callback
> API, or something usable from the callback function. Unfortunately the
> timed callback is not explicitly connection-rec related now so it
> cannot really sort this out without some hints.
>

Reply via email to