mirror of
https://github.com/apache/httpd.git
synced 2025-08-07 04:02:58 +03:00
The Event MPM.
Designed to minimize Apache's KeepAlive overhead. This MPM depends on the current APR-trunk for new features added to the apr_pollset interface. Currently the underlying operating system must support KQueue or EPoll. Status: Should work as a drop in replacement for all non-ssl servers. SSL Requests that use HTTP 1.1 Pipelining do not currently work. Testing: I have tested it with Linux 2.6, FreeBSD 5.2.1, and OS X 10.3. Originally based on the patch by Greg Ames. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105919 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -205,9 +205,17 @@ static void check_pipeline_flush(request_rec *r)
|
||||
*/
|
||||
/* ### shouldn't this read from the connection input filters? */
|
||||
/* ### is zero correct? that means "read one line" */
|
||||
if (r->connection->keepalive == AP_CONN_CLOSE ||
|
||||
ap_get_brigade(r->input_filters, bb, AP_MODE_EATCRLF,
|
||||
if (r->connection->keepalive != AP_CONN_CLOSE) {
|
||||
if (ap_get_brigade(r->input_filters, bb, AP_MODE_EATCRLF,
|
||||
APR_NONBLOCK_READ, 0) != APR_SUCCESS) {
|
||||
c->data_in_input_filters = 0; /* we got APR_EOF or an error */
|
||||
}
|
||||
else {
|
||||
c->data_in_input_filters = 1;
|
||||
return; /* don't flush */
|
||||
}
|
||||
}
|
||||
|
||||
apr_bucket *e = apr_bucket_flush_create(c->bucket_alloc);
|
||||
|
||||
/* We just send directly to the connection based filters. At
|
||||
@@ -218,7 +226,6 @@ static void check_pipeline_flush(request_rec *r)
|
||||
*/
|
||||
APR_BRIGADE_INSERT_HEAD(bb, e);
|
||||
ap_pass_brigade(r->connection->output_filters, bb);
|
||||
}
|
||||
}
|
||||
|
||||
void ap_process_request(request_rec *r)
|
||||
|
Reference in New Issue
Block a user