mirror of
https://github.com/nginx/nginx.git
synced 2025-06-07 17:52:38 +08:00
nginx-0.0.9-2004-07-28-20:16:50 import
This commit is contained in:
parent
71cb183356
commit
5ec68f6453
@ -73,6 +73,13 @@ ngx_int_t ngx_output_chain(ngx_output_chain_ctx_t *ctx, ngx_chain_t *in)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bsize = ngx_buf_size(ctx->in->buf);
|
||||||
|
|
||||||
|
if (bsize == 0) {
|
||||||
|
ctx->in = ctx->in->next;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (ctx->buf == NULL) {
|
if (ctx->buf == NULL) {
|
||||||
|
|
||||||
/* get the free buf */
|
/* get the free buf */
|
||||||
@ -91,8 +98,6 @@ ngx_int_t ngx_output_chain(ngx_output_chain_ctx_t *ctx, ngx_chain_t *in)
|
|||||||
|
|
||||||
if (ctx->in->buf->last_buf) {
|
if (ctx->in->buf->last_buf) {
|
||||||
|
|
||||||
bsize = ngx_buf_size(ctx->in->buf);
|
|
||||||
|
|
||||||
if (bsize < ctx->bufs.size) {
|
if (bsize < ctx->bufs.size) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -626,21 +626,21 @@ static ngx_int_t ngx_rtsig_process_overflow(ngx_cycle_t *cycle)
|
|||||||
cycle->log, 0,
|
cycle->log, 0,
|
||||||
"poll() failed while the overflow recover");
|
"poll() failed while the overflow recover");
|
||||||
|
|
||||||
if (err != NGX_EINTR) {
|
if (err == NGX_EINTR) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ready <= 0) {
|
if (ready <= 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (n) {
|
|
||||||
if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
|
if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
|
||||||
return NGX_ERROR;
|
return NGX_ERROR;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
c = &cycle->connections[overflow_list[i].fd];
|
c = &cycle->connections[overflow_list[i].fd];
|
||||||
@ -686,9 +686,7 @@ static ngx_int_t ngx_rtsig_process_overflow(ngx_cycle_t *cycle)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (n) {
|
|
||||||
ngx_mutex_unlock(ngx_posted_events_mutex);
|
ngx_mutex_unlock(ngx_posted_events_mutex);
|
||||||
}
|
|
||||||
|
|
||||||
if (tested >= rtscf->overflow_test) {
|
if (tested >= rtscf->overflow_test) {
|
||||||
|
|
||||||
@ -723,7 +721,7 @@ static ngx_int_t ngx_rtsig_process_overflow(ngx_cycle_t *cycle)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* drain rt signal queue if the /proc/sys/kernel/rtsig-nr
|
* drain the rt signal queue if the /proc/sys/kernel/rtsig-nr
|
||||||
* is bigger than
|
* is bigger than
|
||||||
* /proc/sys/kernel/rtsig-max / rtsig_overflow_threshold
|
* /proc/sys/kernel/rtsig-max / rtsig_overflow_threshold
|
||||||
*/
|
*/
|
||||||
@ -741,7 +739,7 @@ static ngx_int_t ngx_rtsig_process_overflow(ngx_cycle_t *cycle)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Linux has not KERN_RTSIGMAX since 2.6.6-mm2
|
* Linux has not KERN_RTSIGMAX since 2.6.6-mm2
|
||||||
* so drain rt signal queue unconditionally
|
* so drain the rt signal queue unconditionally
|
||||||
*/
|
*/
|
||||||
|
|
||||||
while (ngx_rtsig_process_events(cycle) == NGX_OK) { /* void */ }
|
while (ngx_rtsig_process_events(cycle) == NGX_OK) { /* void */ }
|
||||||
|
@ -40,7 +40,7 @@ ngx_module_t ngx_http_write_filter_module = {
|
|||||||
ngx_int_t ngx_http_write_filter(ngx_http_request_t *r, ngx_chain_t *in)
|
ngx_int_t ngx_http_write_filter(ngx_http_request_t *r, ngx_chain_t *in)
|
||||||
{
|
{
|
||||||
int last;
|
int last;
|
||||||
off_t size, flush, sent;
|
off_t size, flush, sent, bsize;
|
||||||
ngx_chain_t *cl, *ln, **ll, *chain;
|
ngx_chain_t *cl, *ln, **ll, *chain;
|
||||||
ngx_connection_t *c;
|
ngx_connection_t *c;
|
||||||
ngx_http_core_loc_conf_t *clcf;
|
ngx_http_core_loc_conf_t *clcf;
|
||||||
@ -82,7 +82,13 @@ ngx_int_t ngx_http_write_filter(ngx_http_request_t *r, ngx_chain_t *in)
|
|||||||
*ll = cl;
|
*ll = cl;
|
||||||
ll = &cl->next;
|
ll = &cl->next;
|
||||||
|
|
||||||
size += ngx_buf_size(cl->buf);
|
bsize = ngx_buf_size(cl->buf);
|
||||||
|
|
||||||
|
if (bsize == 0 && cl->buf->in_file) {
|
||||||
|
cl->buf->in_file = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
size += bsize;
|
||||||
|
|
||||||
if (cl->buf->flush || cl->buf->recycled) {
|
if (cl->buf->flush || cl->buf->recycled) {
|
||||||
flush = size;
|
flush = size;
|
||||||
|
@ -120,7 +120,6 @@ ngx_chain_t *ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in,
|
|||||||
|
|
||||||
if (cl && cl->buf->in_file && send < limit) {
|
if (cl && cl->buf->in_file && send < limit) {
|
||||||
file = cl->buf;
|
file = cl->buf;
|
||||||
fsize = 0;
|
|
||||||
|
|
||||||
/* coalesce the neighbouring file bufs */
|
/* coalesce the neighbouring file bufs */
|
||||||
|
|
||||||
|
@ -127,7 +127,6 @@ ngx_chain_t *ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in,
|
|||||||
|
|
||||||
if (header.nelts == 0 && cl && cl->buf->in_file && send < limit) {
|
if (header.nelts == 0 && cl && cl->buf->in_file && send < limit) {
|
||||||
file = cl->buf;
|
file = cl->buf;
|
||||||
fsize = 0;
|
|
||||||
|
|
||||||
/* coalesce the neighbouring file bufs */
|
/* coalesce the neighbouring file bufs */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user