Re: [PATCH] Automatic module globals management

From: Date: Fri, 09 Jun 2006 17:31:37 +0000
Subject: Re: [PATCH] Automatic module globals management
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-24048@lists.php.net to get a copy of this message
My comments went something along the lines of 'well if it's going in can we please apply a fix for the problem this was supposed to fix in the first place, because it isn't an answer to that problem'. I'd still personally rather it didn't, but I'm happy so long as we get an actual fix in there rather than a temporary pain-in-the-ass bug we all have to work around for the next two years.
You're right, Steph's comments threw me off a bit there, but after reconsidering the patch in detail I think it should be fine for 5.2, so go ahead and commit it. On 8-Jun-06, at 7:44 PM, Andi Gutmans wrote:
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
Ilia Alshanetsky


« previous php.internals (#24048) next »