module startup problem in 5.1

From: Date: Mon, 18 Jul 2005 13:15:43 +0000
Subject: module startup problem in 5.1
Groups: php.internals 
Request: Send a blank email to internals+get-17313@lists.php.net to get a copy of this message
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

« previous php.internals (#17313) next »