1.基本数据结构
1)最顶层
\src\core\ngx_palloc.h中 ngx_pool_s -- 内存池基本数据结构,整个内存池是由该结构构成的链表
struct ngx_pool_s {
ngx_pool_data_t d;
size_t max; //单个内存池节点容量的最大值
ngx_pool_t *current; //指向当前的内存池节点
ngx_chain_t *chain; //该指针挂接一个ngx_chain_t结构;
ngx_pool_large_t *large; //指向大块内存链表头
ngx_pool_cleanup_t *cleanup; //释放内存池时的清理动作
ngx_log_t *log; //关联的日志对象
};
typedef struct ngx_pool_s ngx_pool_t;
\src\core\ngx_palloc.h中 ngx_pool_data_t -- 内存池数据块
typedef struct {
u_char *last; //内存池节点已分配的末位地址,下一次分配会尝试从此开始