mirror of
https://github.com/nginx/nginx.git
synced 2025-07-25 22:56:59 +08:00
HTTP/2: refactored ngx_http_v2_send_output_queue().
Now it returns NGX_AGAIN if there's still data to be sent.
This commit is contained in:
parent
3b2f54bc2e
commit
3c81c08cea
@ -478,7 +478,7 @@ ngx_http_v2_send_output_queue(ngx_http_v2_connection_t *h2c)
|
|||||||
wev = c->write;
|
wev = c->write;
|
||||||
|
|
||||||
if (!wev->ready) {
|
if (!wev->ready) {
|
||||||
return NGX_OK;
|
return NGX_AGAIN;
|
||||||
}
|
}
|
||||||
|
|
||||||
cl = NULL;
|
cl = NULL;
|
||||||
@ -549,15 +549,6 @@ ngx_http_v2_send_output_queue(ngx_http_v2_connection_t *h2c)
|
|||||||
c->tcp_nodelay = NGX_TCP_NODELAY_SET;
|
c->tcp_nodelay = NGX_TCP_NODELAY_SET;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!wev->ready) {
|
|
||||||
ngx_add_timer(wev, clcf->send_timeout);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
if (wev->timer_set) {
|
|
||||||
ngx_del_timer(wev);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for ( /* void */ ; out; out = fn) {
|
for ( /* void */ ; out; out = fn) {
|
||||||
fn = out->next;
|
fn = out->next;
|
||||||
|
|
||||||
@ -582,6 +573,15 @@ ngx_http_v2_send_output_queue(ngx_http_v2_connection_t *h2c)
|
|||||||
|
|
||||||
h2c->last_out = frame;
|
h2c->last_out = frame;
|
||||||
|
|
||||||
|
if (!wev->ready) {
|
||||||
|
ngx_add_timer(wev, clcf->send_timeout);
|
||||||
|
return NGX_AGAIN;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (wev->timer_set) {
|
||||||
|
ngx_del_timer(wev);
|
||||||
|
}
|
||||||
|
|
||||||
return NGX_OK;
|
return NGX_OK;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
Loading…
Reference in New Issue
Block a user