Ubuntu 下 nginx-1.24.0 源码分析 - ngx_init_cycle 函数 - 详解(8)

[复制链接]
发表于 2025-10-22 07:52:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
详解(8)


初始化模块设置上下文(conf_ctx)
  1.    cycle->conf_ctx = ngx_pcalloc(pool, ngx_max_module * sizeof(void *));
  2.     if (cycle->conf_ctx == NULL) {
  3.         ngx_destroy_pool(pool);
  4.         return NULL;
  5.     }
复制代码

1 分配模块设置上下文数组
  1. cycle->conf_ctx = ngx_pcalloc(pool, ngx_max_module * sizeof(void *));
复制代码
从内存池 pool 中分配一个指针数组 conf_ctx,每个元素对应一个模块的设置结构指针。

  • ngx_max_module:编译时确定的模块总数
  • sizeof(void *):每个指针的巨细
  • 数组长度为 ngx_max_module,索引为模块的唯一标识符(module->index)。
  • 初始值全为 NULL,表现尚未创建设置结构。

2 查抄内存分配效果
  1. if (cycle->conf_ctx == NULL) {
  2.     ngx_destroy_pool(pool);
  3.     return NULL;
  4. }
复制代码
若内存分配失败,烧毁内存池并克制初始化。

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表