Reload tsrmls_id in release builds as well

If TSRM is shut down and started again (something that phpdbg does),
then tsrmls_id needs to be reloaded everywhere. As tsrmls_id
update is a rare operation, doing that shouldn't be a problem.
This commit is contained in:
Nikita Popov 2019-06-04 15:23:10 +02:00
parent ac60007bec
commit 2d3bc71e89
2 changed files with 0 additions and 7 deletions

View file

@ -179,13 +179,7 @@ TSRM_API uint8_t tsrm_is_main_thread(void);
#define TSRMG_BULK_STATIC(id, type) ((type) (*((void ***) TSRMLS_CACHE))[TSRM_UNSHUFFLE_RSRC_ID(id)]) #define TSRMG_BULK_STATIC(id, type) ((type) (*((void ***) TSRMLS_CACHE))[TSRM_UNSHUFFLE_RSRC_ID(id)])
#define TSRMLS_CACHE_EXTERN() extern TSRM_TLS void *TSRMLS_CACHE; #define TSRMLS_CACHE_EXTERN() extern TSRM_TLS void *TSRMLS_CACHE;
#define TSRMLS_CACHE_DEFINE() TSRM_TLS void *TSRMLS_CACHE = NULL; #define TSRMLS_CACHE_DEFINE() TSRM_TLS void *TSRMLS_CACHE = NULL;
#if ZEND_DEBUG
#define TSRMLS_CACHE_UPDATE() TSRMLS_CACHE = tsrm_get_ls_cache() #define TSRMLS_CACHE_UPDATE() TSRMLS_CACHE = tsrm_get_ls_cache()
#define TSRMLS_CACHE_RESET()
#else
#define TSRMLS_CACHE_UPDATE() if (!TSRMLS_CACHE) TSRMLS_CACHE = tsrm_get_ls_cache()
#define TSRMLS_CACHE_RESET() TSRMLS_CACHE = NULL
#endif
#define TSRMLS_CACHE _tsrm_ls_cache #define TSRMLS_CACHE _tsrm_ls_cache
/* BC only */ /* BC only */

View file

@ -227,7 +227,6 @@ EMBED_SAPI_API void php_embed_shutdown(void)
sapi_shutdown(); sapi_shutdown();
#ifdef ZTS #ifdef ZTS
tsrm_shutdown(); tsrm_shutdown();
TSRMLS_CACHE_RESET();
#endif #endif
if (php_embed_module.ini_entries) { if (php_embed_module.ini_entries) {
free(php_embed_module.ini_entries); free(php_embed_module.ini_entries);