tsrm in CLI

php.internals

Stanislav Malyshev

19 years ago
Hi! I looked at CLI SAPI and found this code, around line 719: #ifdef ZTS compiler_globals = ts_resource(compiler_globals_id); executor_globals = ts_resource(executor_globals_id); core_globals = ts_resource(core_globals_id); sapi_globals = ts_resource(sapi_globals_id); tsrm_ls = ts_resource(0); #endif /* startup after we get the above ini override se we get things right */ if (cli_sapi_module.startup(&cli_sapi_module)==FAILURE) { The problem here is that compiler/executor globals are allocated in zend_startup, which is called from cli_sapi_module.startup. So what is actually in compiler_globals and executor_globals is either tsrm_ls if they are initialized to 0 or random crap if they aren't. Can anybody explain me where I'm wrong and why this code works?
-- Stanislav Malyshev, Zend Software Architect stas@zend.com http://www.zend.com/ (408)253-8829 MSN: stas@zend.com

Stanislav Malyshev

19 years ago
> The problem here is that compiler/executor globals are allocated in > zend_startup, which is called from cli_sapi_module.startup. So what is > actually in compiler_globals and executor_globals is either tsrm_ls if > they are initialized to 0 or random crap if they aren't. Can anybody > explain me where I'm wrong and why this code works?
After a bit more looking into it appears that this code just does nothing since compiler_globals pointer isn't used in ZTS mode. So I'm going to delete this code unless I hear objections to it.
-- Stanislav Malyshev, Zend Software Architect stas@zend.com http://www.zend.com/ (408)253-8829 MSN: stas@zend.com