]> git.kaiwu.me - nginx.git/commitdiff
ngx_reset_pool()
authorIgor Sysoev <igor@sysoev.ru>
Tue, 25 Nov 2008 14:25:20 +0000 (14:25 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Tue, 25 Nov 2008 14:25:20 +0000 (14:25 +0000)
src/core/ngx_palloc.c
src/core/ngx_palloc.h

index ce826bab6cc9b91c638b03b2ba8006e54cc72058..7c89fda709403c56200bd891672518d3be0078e2 100644 (file)
@@ -91,6 +91,26 @@ ngx_destroy_pool(ngx_pool_t *pool)
 }
 
 
+void
+ngx_reset_pool(ngx_pool_t *pool)
+{
+    ngx_pool_t        *p;
+    ngx_pool_large_t  *l;
+
+    for (l = pool->large; l; l = l->next) {
+        if (l->alloc) {
+            ngx_free(l->alloc);
+        }
+    }
+
+    pool->large = NULL;
+
+    for (p = pool; p; p = p->d.next) {
+        p->d.last = (u_char *) p + sizeof(ngx_pool_t);
+    }
+}
+
+
 void *
 ngx_palloc(ngx_pool_t *pool, size_t size)
 {
index 2b3a30cbd00ea5c8947ab18aa4e3036fc394a4f3..434f9728b753addeb2d7b6aaaebf8742415849ac 100644 (file)
@@ -73,6 +73,7 @@ void *ngx_calloc(size_t size, ngx_log_t *log);
 
 ngx_pool_t *ngx_create_pool(size_t size, ngx_log_t *log);
 void ngx_destroy_pool(ngx_pool_t *pool);
+void ngx_reset_pool(ngx_pool_t *pool);
 
 void *ngx_palloc(ngx_pool_t *pool, size_t size);
 void *ngx_pnalloc(ngx_pool_t *pool, size_t size);