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