httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe Jr." <wr...@rowe-clan.net>
Subject Re: ap_read_config in 2.3.11
Date Tue, 12 Apr 2011 16:24:28 GMT
On 4/11/2011 2:14 PM, Stefan Fritsch wrote:
> On Monday 11 April 2011, Torsten Förtsch wrote:
>> I am working on porting modperl to the upcoming httpd 2.4. One
>> problem is the line
>>
>>   conf_vector_length = total_modules;
>>
>> in ap_read_config (config.c:2300).
>>
>> Modperl provides a way to write modules in Perl. These modules are
>> loaded by the directive PerlLoadModule which is executed later
>> than line 2300. Such modules are then appended to the module list,
>> get a module structure, can create config directives etc. They
>> also have a module index and allocate their place in config
>> vectors.
>>
>> Now, the line above limits the config vector length to the number
>> of modules known before any one perl module could be loaded.
>>
>> How can this situation be solved?
> 
> When exactly is PerlLoadModule executed? The above code assumes that 
> modules are loaded with EXEC_ON_READ during reading of the config.
> 
> I guess the optimization could be done later, after the config has 
> been parsed completely. That would waste some memory in pconf but 
> still preserve the optimization during request processing, which is 
> more important.

Suggestion - an EXEC_ON_READ 'DynamicModulesMax' directive, which would
let us conf_vector_length = total_modules + dyn_modules_max; after the
read_config, and finally lock down conf_vector_length = total_modules;
at the end of post_config.  WDYT?


Mime
View raw message