[nginx] SPDY: ignore priority when queuing blocked frames.

Valentin Bartenev vbart at nginx.com
Mon Sep 30 20:40:00 UTC 2013


details:   http://hg.nginx.org/nginx/rev/620808518349
branches:  
changeset: 5405:620808518349
user:      Valentin Bartenev <vbart at nginx.com>
date:      Tue Oct 01 00:14:37 2013 +0400
description:
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.

diffstat:

 src/http/ngx_http_spdy.h |  4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diffs (15 lines):

diff -r db85dacfa013 -r 620808518349 src/http/ngx_http_spdy.h
--- a/src/http/ngx_http_spdy.h	Tue Oct 01 00:12:30 2013 +0400
+++ b/src/http/ngx_http_spdy.h	Tue Oct 01 00:14:37 2013 +0400
@@ -173,9 +173,9 @@ ngx_http_spdy_queue_blocked_frame(ngx_ht
 {
     ngx_http_spdy_out_frame_t  **out;
 
-    for (out = &sc->last_out; *out && !(*out)->blocked; out = &(*out)->next)
+    for (out = &sc->last_out; *out; out = &(*out)->next)
     {
-        if (frame->priority >= (*out)->priority) {
+        if ((*out)->blocked) {
             break;
         }
     }



More information about the nginx-devel mailing list