nginx创建内存池的问题

ngx_pool_t *
ngx_create_pool(size_t size, ngx_log_t *log)
{

ngx_pool_t  *p;

p = ngx_memalign(NGX_POOL_ALIGNMENT, size, log);if (p == NULL) {    return NULL;
}

p->d.last = (u_char *) p + sizeof(ngx_pool_t);
p->d.end = (u_char *) p + size;
p->d.next = NULL;
p->d.failed = 0;

size = size - sizeof(ngx_pool_t);
p->max = (size < NGX_MAX_ALLOC_FROM_POOL) ? size : NGX_MAX_ALLOC_FROM_POOL;

p->current = p;
p->chain = NULL;
p->large = NULL;
p->cleanup = NULL;
p->log = log;return p;

}

如上,在 ngx_create_pool 中 使用到了 NGX_MAX_ALLOC_FROM_POOL, NGX_MAX_ALLOC_FROM_POOL 是 ngx_pagesize - 1
但是看nginx代码, ngx_pagesize 在第一次穿件内存池的时候, 还没有被赋值。这是不是有问题?


长风秋雁
浏览 492回答 1
1回答

千万里不及你

ngx_pagesize 全局变量默认被初始化为 0 了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript