RE: [PHP-DEV] module startup problem in 5.1
| From: | Dmitry Stogov | Date: | Mon, 18 Jul 2005 14:57:32 +0000 |
| Subject: | RE: [PHP-DEV] module startup problem in 5.1 | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-17319@lists.php.net to get a copy of this message | ||
Hi Stas,
We can reimplement zend_register_internal_module() to return
zend_module_entry* instead of bool.
(The same behavior is in dl() function).
Thanks. Dmitry.
> -----Original Message-----
> From: Stanislav Malyshev [mailto:stas@zend.com]
> Sent: Monday, July 18, 2005 5:16 PM
> To: PHP Development
> Subject: [PHP-DEV] module startup problem in 5.1
>
>
> I see very serious problem un current module registration/startup
> functions in 5.1.
> In 5.0, there was a function zend_startup_module which did
> two things: 1. Register PHP module with the system 2. Run
> startup function of the module
>
> Now, in 5.1 those functions got spearated. However, the
> problem is that it
> now looks like this:
>
> ZEND_API int zend_startup_module(zend_module_entry *module)
> {
> TSRMLS_FETCH();
>
> if (zend_register_internal_module(module TSRMLS_CC) == SUCCESS &&
> zend_startup_module_ex(module TSRMLS_CC) == SUCCESS) {
> return SUCCESS;
> }
> return FAILURE;
> }
>
> The trouble here is that zend_register_internal_module stores
> module in
> internal hash as value, so when zend_startup_module_ex is
> run, it runs not
> on the value in the hash but on original value. This leads to
> module_started being never set in the hash value on module
> which was added
> in runtime - meaning its destructor is never called on shutdown.
>
> Since zend_register_internal_module never returns the hash
> value, I see no
> easy way to fix this, but I think it must be fixed ASAP.
>
> --
> Stanislav Malyshev, Zend Products Engineer
> stas@zend.com http://www.zend.com/ +972-3-6139665 ext.115
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>