tsrm in CLI
| From: | Stanislav Malyshev | Date: | Wed, 08 Aug 2007 19:13:45 +0000 |
| Subject: | tsrm in CLI | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-31494@lists.php.net to get a copy of this message | ||
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