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






--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to