Why so? It doesn't affect any compatibility.
At 02:31 PM 6/8/2006, Ilia Alshanetsky wrote:
The patch is good, but I think this change maybe a bit too extreme
for PHP 5.2
On 8-Jun-06, at 8:15 AM, Dmitry Stogov wrote:
Hi,
The attached patch (for PHP_5_2) implements automatic management of
module
globals.
The problem that module globals must be unregistered before extension
unloading, because "globls_dtor" function is unloaded together with
extension and cannot be called.
To solve this problem extension writers now use the following pattern:
PHP_MSHUTDOWN_FUNCTION(mod_name)
{
-#ifdef ZTS
- ts_free_id(mod_name_globals_id);
-#else
- mod_name_globals_dtor(&mod_name_globals TSRMLS_CC);
-#endif
With my patch, extension writers should just extend module
descriptor with
globals descriptor and ctor/dtor callbacks.
PHP_RSHUTDOWN(mod_name),
PHP_MINFO(mod_name),
NO_VERSION_YET,
- STANDARD_MODULE_PROPERTIES
+ NULL,
+ ZEND_MG(mod_name),
+ ZEND_MGCTOR(mod_name),
+ ZEND_MGCTOR(mod_name),
+ STANDARD_MODULE_PROPERTIES_EX2
};
Old extensions are source compatible and may work without
modification.
The patch modifies only several extensions, but will modify others
too.
I like commit the patch into HEAD and PHP_5_2.
Any objections, additional ideas?
Thanks. Dmitry.
<zts_globals-2.diff.txt>
Ilia Alshanetsky
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php