Pb with module initialization

Vladimir Shebordaev vshebordaev at mail.ru
Fri Aug 17 13:36:51 UTC 2012


2012/8/17 MAGNIEN, Thierry <thierry.magnien at sfr.com>:
>>>> A shared memory zone has a constructor, namely, init() method in
>>>> ngx_shm_zone_t. This method is invoked by ngx_init_cycle() when the
>>>> configuration is already processed and the shared memory zones are
>>>> about to be (re)initialized, so I guess you can accees both your
>>>> directives and the actual shm zone data from there. See file cache
>>>> initialization routine ngx_http_file_cache_init() in
>>>> src/http/ngx_http_file_cache.c for an example.
>>>
>>> Well, I have such an init method but its arguments are only (ngx_shm_zone_t *shm_zone, void *data). I suppose I must use ngx_get_conf but what arguments should I give to it ?
>>

By the way, when the shm zone constructor is invoked by
ngx_init_cycle() it gets the value of the data field of the shm zone
descriptor from the old cycle as the second argument. NULL is passed
there when the zone is initialized for the first time right after it
is created anew.

>>You can access your module main configuration with
>>ngx_http_cycle_get_module_main_conf()  through the global ngx_cycle
>>that has the module contexts already set up by the shm initialization
>>time. You can also access the configuration from the module
>>init_process() method that is explicitly given the cycle. Either way,
>>you can pass any parameters you need to the shm zone constructor
>>through the zone data field that is to be installed right after the
>>shm zone is added  at the module configuration time.
>
> Just found out this, our messages crossed each other ;-)
>
> Thanks for your help, however.
>
> Regards,
> Thierry
>
> _______________________________________________
> nginx-devel mailing list
> nginx-devel at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-devel
>



More information about the nginx-devel mailing list