Re: [PATCH] Automatic module globals management
| From: | Ilia Alshanetsky | Date: | Fri, 09 Jun 2006 16:03:14 +0000 |
| Subject: | Re: [PATCH] Automatic module globals management | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-24044@lists.php.net to get a copy of this message | ||
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:Ilia AlshanetskyThe 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 ZTSIlia Alshanetsky- 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>