aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_palloc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ngx_palloc.h')
-rw-r--r--src/core/ngx_palloc.h41
1 files changed, 33 insertions, 8 deletions
diff --git a/src/core/ngx_palloc.h b/src/core/ngx_palloc.h
index bd256e8a9..62a571818 100644
--- a/src/core/ngx_palloc.h
+++ b/src/core/ngx_palloc.h
@@ -22,24 +22,44 @@
#define NGX_DEFAULT_POOL_SIZE (16 * 1024)
+typedef void (*ngx_pool_cleanup_pt)(void *data);
+
+typedef struct ngx_pool_cleanup_s ngx_pool_cleanup_t;
+
+struct ngx_pool_cleanup_s {
+ ngx_pool_cleanup_pt handler;
+ void *data;
+ ngx_pool_cleanup_t *next;
+};
+
+
typedef struct ngx_pool_large_s ngx_pool_large_t;
struct ngx_pool_large_s {
- ngx_pool_large_t *next;
- void *alloc;
+ ngx_pool_large_t *next;
+ void *alloc;
};
struct ngx_pool_s {
- u_char *last;
- u_char *end;
- ngx_chain_t *chain;
- ngx_pool_t *next;
- ngx_pool_large_t *large;
- ngx_log_t *log;
+ u_char *last;
+ u_char *end;
+ ngx_chain_t *chain;
+ ngx_pool_t *next;
+ ngx_pool_large_t *large;
+ ngx_pool_cleanup_t *cleanup;
+ ngx_log_t *log;
};
+typedef struct {
+ ngx_fd_t fd;
+ u_char *name;
+ ngx_log_t *log;
+} ngx_pool_cleanup_file_t;
+
+
+
void *ngx_alloc(size_t size, ngx_log_t *log);
void *ngx_calloc(size_t size, ngx_log_t *log);
@@ -51,4 +71,9 @@ void *ngx_pcalloc(ngx_pool_t *pool, size_t size);
ngx_int_t ngx_pfree(ngx_pool_t *pool, void *p);
+ngx_pool_cleanup_t *ngx_pool_cleanup_add(ngx_pool_t *p,
+ ngx_pool_cleanup_pt handler, void *data);
+void ngx_pool_cleanup_file(void *data);
+
+
#endif /* _NGX_PALLOC_H_INCLUDED_ */