Mercurial > hg > nginx
changeset 5521:320abeb364e6
Core: improved ngx_reset_pool() (ticket #490).
Previously pool->current wasn't moved back to pool, resulting in blocks
not used for further allocations if pool->current was already moved at the
time of ngx_reset_pool(). Additionally, to preserve logic of moving
pool->current, the p->d.failed counters are now properly cleared. While
here, pool->chain is also cleared.
This change is essentially a nop with current code, but generally improves
things.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 17 Jan 2014 06:24:53 +0400 |
parents | a336cbc3dd44 |
children | bb3dc21c89ef |
files | src/core/ngx_palloc.c |
diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/core/ngx_palloc.c Wed Jan 15 17:16:38 2014 +0400 +++ b/src/core/ngx_palloc.c Fri Jan 17 06:24:53 2014 +0400 @@ -105,11 +105,14 @@ } } - pool->large = NULL; - for (p = pool; p; p = p->d.next) { p->d.last = (u_char *) p + sizeof(ngx_pool_t); + p->d.failed = 0; } + + pool->current = pool; + pool->chain = NULL; + pool->large = NULL; }