Mercurial > hg > nginx
comparison src/http/ngx_http_write_filter_module.c @ 1408:e67ef50c3176
set delay only when almost whole sendfile_max_chunk was transferred
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 20 Aug 2007 10:35:41 +0000 |
parents | 493a227edfd5 |
children | 97668157b352 |
comparison
equal
deleted
inserted
replaced
1407:6e99e8c71bde | 1408:e67ef50c3176 |
---|---|
247 if (r->limit_rate) { | 247 if (r->limit_rate) { |
248 sent = c->sent - sent; | 248 sent = c->sent - sent; |
249 c->write->delayed = 1; | 249 c->write->delayed = 1; |
250 ngx_add_timer(c->write, (ngx_msec_t) (sent * 1000 / r->limit_rate + 1)); | 250 ngx_add_timer(c->write, (ngx_msec_t) (sent * 1000 / r->limit_rate + 1)); |
251 | 251 |
252 } else if (c->write->ready && clcf->sendfile_max_chunk) { | 252 } else if (c->write->ready |
253 && clcf->sendfile_max_chunk | |
254 && c->sent - sent >= clcf->sendfile_max_chunk - 2 * ngx_pagesize) | |
255 { | |
253 c->write->delayed = 1; | 256 c->write->delayed = 1; |
254 ngx_add_timer(c->write, 1); | 257 ngx_add_timer(c->write, 1); |
255 } | 258 } |
256 | 259 |
257 for (cl = r->out; cl && cl != chain; /* void */) { | 260 for (cl = r->out; cl && cl != chain; /* void */) { |