<div dir="ltr"><div><div>A timer of 1 msec is not necessary take into account the resolutions of ngx_time() and p->start.</div><div>If we don't consider the truncation error of ngx_time() and p->start, '1' should be '1000'. If we</div><div>consider the truncation error, don't add timer if limit == 0 and discard '+ 1'.</div><div><br></div><div>---</div><div> src/event/ngx_event_pipe.c | 4 ++--</div><div> 1 file changed, 2 insertions(+), 2 deletions(-)</div><div><br></div><div>diff --git a/src/event/ngx_event_pipe.c b/src/event/ngx_event_pipe.c</div><div>index 2d0e7d3..580a947 100644</div><div>--- a/src/event/ngx_event_pipe.c</div><div>+++ b/src/event/ngx_event_pipe.c</div><div>@@ -181,9 +181,9 @@ ngx_event_pipe_read_upstream(ngx_event_pipe_t *p)</div><div>                 limit = (off_t) p->limit_rate * (ngx_time() - p->start_sec + 1)</div><div>                         - p->read_length;</div><div> </div><div>-                if (limit <= 0) {</div><div>+                if (limit < 0) {</div><div>                     p->upstream->read->delayed = 1;</div><div>-                    delay = (ngx_msec_t) (- limit * 1000 / p->limit_rate + 1);</div><div>+                    delay = (ngx_msec_t) (- limit * 1000 / p->limit_rate);</div><div>                     ngx_add_timer(p->upstream->read, delay);</div><div>                     break;</div><div>                 }</div><div>-- </div><div>1.9.1</div></div><div><br></div><div><br></div></div>