Mercurial > hg > nginx
comparison src/http/ngx_http_spdy.h @ 5493:916cb6d28f6a
SPDY: fixed possible request hang.
Processing events from upstream connection can result in sending queued frames
from other streams. In this case such streams were not added to handling queue
and properly handled.
A global per connection flag was replaced by a per stream flag that indicates
currently sending stream while all other streams can be added to handling
queue.
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Thu, 26 Dec 2013 17:03:16 +0400 |
parents | 620808518349 |
children | 9053fdcea4b7 |
comparison
equal
deleted
inserted
replaced
5492:5c52ff68f380 | 5493:916cb6d28f6a |
---|---|
104 size_t length; | 104 size_t length; |
105 u_char flags; | 105 u_char flags; |
106 | 106 |
107 ngx_uint_t last_sid; | 107 ngx_uint_t last_sid; |
108 | 108 |
109 unsigned blocked:2; | 109 unsigned blocked:1; |
110 unsigned waiting:1; /* FIXME better name */ | 110 unsigned waiting:1; /* FIXME better name */ |
111 }; | 111 }; |
112 | 112 |
113 | 113 |
114 struct ngx_http_spdy_stream_s { | 114 struct ngx_http_spdy_stream_s { |
123 ngx_http_spdy_out_frame_t *free_frames; | 123 ngx_http_spdy_out_frame_t *free_frames; |
124 ngx_chain_t *free_data_headers; | 124 ngx_chain_t *free_data_headers; |
125 | 125 |
126 unsigned priority:2; | 126 unsigned priority:2; |
127 unsigned handled:1; | 127 unsigned handled:1; |
128 unsigned blocked:1; | |
128 unsigned in_closed:1; | 129 unsigned in_closed:1; |
129 unsigned out_closed:1; | 130 unsigned out_closed:1; |
130 unsigned skip_data:2; | 131 unsigned skip_data:2; |
131 }; | 132 }; |
132 | 133 |