Mercurial > hg > nginx-vendor-current
comparison src/core/ngx_buf.c @ 640:eb208e0cf44d NGINX_1_1_4
nginx 1.1.4
*) Feature: the ngx_http_upstream_keepalive module.
*) Feature: the "proxy_http_version" directive.
*) Feature: the "fastcgi_keep_conn" directive.
*) Feature: the "worker_aio_requests" directive.
*) Bugfix: if nginx was built --with-file-aio it could not be run on
Linux kernel which did not support AIO.
*) Bugfix: in Linux AIO error processing.
Thanks to Hagai Avrahami.
*) Bugfix: reduced memory consumption for long-lived requests.
*) Bugfix: the module ngx_http_mp4_module did not support 64-bit MP4
"co64" atom.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Tue, 20 Sep 2011 00:00:00 +0400 |
parents | fd759445d8a8 |
children | d0f7a625f27c |
comparison
equal
deleted
inserted
replaced
639:b516b4e38bc9 | 640:eb208e0cf44d |
---|---|
178 return cl; | 178 return cl; |
179 } | 179 } |
180 | 180 |
181 | 181 |
182 void | 182 void |
183 ngx_chain_update_chains(ngx_chain_t **free, ngx_chain_t **busy, | 183 ngx_chain_update_chains(ngx_pool_t *p, ngx_chain_t **free, ngx_chain_t **busy, |
184 ngx_chain_t **out, ngx_buf_tag_t tag) | 184 ngx_chain_t **out, ngx_buf_tag_t tag) |
185 { | 185 { |
186 ngx_chain_t *cl; | 186 ngx_chain_t *cl; |
187 | 187 |
188 if (*busy == NULL) { | 188 if (*busy == NULL) { |
195 } | 195 } |
196 | 196 |
197 *out = NULL; | 197 *out = NULL; |
198 | 198 |
199 while (*busy) { | 199 while (*busy) { |
200 if (ngx_buf_size((*busy)->buf) != 0) { | 200 cl = *busy; |
201 | |
202 if (ngx_buf_size(cl->buf) != 0) { | |
201 break; | 203 break; |
202 } | 204 } |
203 | 205 |
204 if ((*busy)->buf->tag != tag) { | 206 if (cl->buf->tag != tag) { |
205 *busy = (*busy)->next; | 207 *busy = cl->next; |
208 ngx_free_chain(p, cl); | |
206 continue; | 209 continue; |
207 } | 210 } |
208 | 211 |
209 (*busy)->buf->pos = (*busy)->buf->start; | 212 cl->buf->pos = cl->buf->start; |
210 (*busy)->buf->last = (*busy)->buf->start; | 213 cl->buf->last = cl->buf->start; |
211 | 214 |
212 cl = *busy; | |
213 *busy = cl->next; | 215 *busy = cl->next; |
214 cl->next = *free; | 216 cl->next = *free; |
215 *free = cl; | 217 *free = cl; |
216 } | 218 } |
217 } | 219 } |