nginx-0.0.9-2004-07-28-20:16:50 import
This commit is contained in:
parent
89568f3373
commit
fbbe499319
5 changed files with 24 additions and 17 deletions
|
@ -73,6 +73,13 @@ ngx_int_t ngx_output_chain(ngx_output_chain_ctx_t *ctx, ngx_chain_t *in)
|
|||
continue;
|
||||
}
|
||||
|
||||
bsize = ngx_buf_size(ctx->in->buf);
|
||||
|
||||
if (bsize == 0) {
|
||||
ctx->in = ctx->in->next;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ctx->buf == NULL) {
|
||||
|
||||
/* 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) {
|
||||
|
||||
bsize = ngx_buf_size(ctx->in->buf);
|
||||
|
||||
if (bsize < ctx->bufs.size) {
|
||||
|
||||
/*
|
||||
|
|
|
@ -626,20 +626,20 @@ static ngx_int_t ngx_rtsig_process_overflow(ngx_cycle_t *cycle)
|
|||
cycle->log, 0,
|
||||
"poll() failed while the overflow recover");
|
||||
|
||||
if (err != NGX_EINTR) {
|
||||
break;
|
||||
if (err == NGX_EINTR) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (ready <= 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (n) {
|
||||
if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
|
||||
return NGX_ERROR;
|
||||
}
|
||||
if (ngx_mutex_lock(ngx_posted_events_mutex) == NGX_ERROR) {
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
|
@ -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) {
|
||||
|
||||
|
@ -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
|
||||
* /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
|
||||
* so drain rt signal queue unconditionally
|
||||
* so drain the rt signal queue unconditionally
|
||||
*/
|
||||
|
||||
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)
|
||||
{
|
||||
int last;
|
||||
off_t size, flush, sent;
|
||||
off_t size, flush, sent, bsize;
|
||||
ngx_chain_t *cl, *ln, **ll, *chain;
|
||||
ngx_connection_t *c;
|
||||
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->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) {
|
||||
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) {
|
||||
file = cl->buf;
|
||||
fsize = 0;
|
||||
|
||||
/* 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) {
|
||||
file = cl->buf;
|
||||
fsize = 0;
|
||||
|
||||
/* coalesce the neighbouring file bufs */
|
||||
|
||||
|
|
Loading…
Reference in a new issue