zend_alter_ini_entry threadsave if used in SAPI modules?

php.internals

Uwe Schindler

23 years ago
I am writing on an extension of the NSAPI SAPI module (see bug #8879) so that you can specify some overrides for php.ini entries at execution of a script from the webserver (like you can do it in apache). I want to set the variables with zend_alter_ini_entry(..., PHP_INI_SYSTEM, PHP_INI_STAGE_RUNTIME); but this call have no reference to TSRM. Can I use it or is it not thread save? e.g. if two requests to the webserver on two virtual servers run at the same time and each thread overwrites the doc_root property in php.ini can they coexist. Are PHP_INI_STAGE_RUNTIME settings only valid for one thread? Looking at aolserver SAPI, the ini feature is commented out there because of thread safety... Uwe

Zeev Suraski

23 years ago
At 16:36 18/05/2003, Uwe Schindler wrote:
>I am writing on an extension of the NSAPI SAPI module (see bug #8879) so >that you can specify some overrides for php.ini entries at execution of a >script from the webserver (like you can do it in apache). > >I want to set the variables with > zend_alter_ini_entry(..., PHP_INI_SYSTEM, PHP_INI_STAGE_RUNTIME); >but this call have no reference to TSRM. > >Can I use it or is it not thread save? e.g. if two requests to the >webserver on two virtual servers run at the same time and each thread >overwrites the doc_root property in php.ini can they coexist. Are >PHP_INI_STAGE_RUNTIME settings only valid for one thread? > >Looking at aolserver SAPI, the ini feature is commented out there because >of thread safety...
It should be thread safe. Are you sure that the comment in aolserver.c is due to thread safety? Zeev

Uwe Schindler

23 years ago
Look here: /* * Deactivated for now. The ini system will cause random crashes when * accessed from here (since there are no locks to protect the global * known_directives) */ My question was if the modifications to the ini values are valid only for one thread, so if the webserver runs two requests in two threads at the same time with different ini settings if they can see the modification of the other one... At 16:40 18.05.2003 +0300, Zeev Suraski wrote:

Zeev Suraski

23 years ago
At 16:45 18/05/2003, Uwe Schindler wrote:
>Look here: > > /* > * Deactivated for now. The ini system will cause random crashes when > * accessed from here (since there are no locks to protect the global > * known_directives) > */ > >My question was if the modifications to the ini values are valid only for >one thread, so if the webserver runs two requests in two threads at the >same time with different ini settings if they can see the modification of >the other one...
Each thread has its own copy of the value, different threads can see different values. I'm not aware of any crashes related to the INI system for quite some time... Zeev

Sascha Schumann

23 years ago
> Looking at aolserver SAPI, the ini feature is commented out there because > of thread safety...
That's an extremely old comment, maybe things have improved since then. - Sascha