RE: [PHP-DEV] module startup problem in 5.1

From: 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 > >

« previous php.internals (#17319) next »