Mercurial > hg > nginx
comparison src/http/ngx_http_spdy.h @ 5405:620808518349
SPDY: ignore priority when queuing blocked frames.
With this change all such frames will be added in front of the output queue, and
will be sent first. It prevents HOL blocking when response with higher priority
is blocked by response with lower priority in the middle of the queue because
the order of their SYN_REPLY frames cannot be changed.
Proposed by Yury Kirpichev.
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Tue, 01 Oct 2013 00:14:37 +0400 |
parents | 15a7deeaa19a |
children | 916cb6d28f6a |
comparison
equal
deleted
inserted
replaced
5404:db85dacfa013 | 5405:620808518349 |
---|---|
171 ngx_http_spdy_queue_blocked_frame(ngx_http_spdy_connection_t *sc, | 171 ngx_http_spdy_queue_blocked_frame(ngx_http_spdy_connection_t *sc, |
172 ngx_http_spdy_out_frame_t *frame) | 172 ngx_http_spdy_out_frame_t *frame) |
173 { | 173 { |
174 ngx_http_spdy_out_frame_t **out; | 174 ngx_http_spdy_out_frame_t **out; |
175 | 175 |
176 for (out = &sc->last_out; *out && !(*out)->blocked; out = &(*out)->next) | 176 for (out = &sc->last_out; *out; out = &(*out)->next) |
177 { | 177 { |
178 if (frame->priority >= (*out)->priority) { | 178 if ((*out)->blocked) { |
179 break; | 179 break; |
180 } | 180 } |
181 } | 181 } |
182 | 182 |
183 frame->next = *out; | 183 frame->next = *out; |