integrated the static tsrmls cache into ext/skel

This commit is contained in:
Anatol Belski 2014-12-17 12:37:50 +01:00
parent 9c354ba182
commit e1fcb9ea66
3 changed files with 14 additions and 10 deletions

View file

@ -166,7 +166,7 @@ if test "\$PHP_$EXTNAME" != "no"; then
dnl
dnl PHP_SUBST(${EXTNAME}_SHARED_LIBADD)
PHP_NEW_EXTENSION($extname, $extname.c, \$ext_shared)
PHP_NEW_EXTENSION($extname, $extname.c, \$ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
fi
eof
@ -182,7 +182,7 @@ cat >config.w32 <<eof
// ARG_ENABLE("$extname", "enable $extname support", "no");
if (PHP_$EXTNAME != "no") {
EXTENSION("$extname", "$extname.c");
EXTENSION("$extname", "$extname.c", PHP_EXTNAME_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
}
eof

View file

@ -30,18 +30,16 @@ ZEND_BEGIN_MODULE_GLOBALS(extname)
ZEND_END_MODULE_GLOBALS(extname)
*/
/* In every utility function you add that needs to use variables
in php_extname_globals, call TSRMLS_FETCH(); after declaring other
variables used by that function, or better yet, pass in
after the last function argument and declare your utility function
with after the last declared argument. Always refer to
the globals in your function as EXTNAME_G(variable). You are
encouraged to rename these macros something shorter, see
/* Always refer to the globals in your function as EXTNAME_G(variable).
You are encouraged to rename these macros something shorter, see
examples in any other php module directory.
*/
#ifdef ZTS
#define EXTNAME_G(v) TSRMG(extname_globals_id, zend_extname_globals *, v)
#define EXTNAME_G(v) ZEND_TSRMG(extname_globals_id, zend_extname_globals *, v)
#ifdef COMPILE_DL_EXTNAME
ZEND_TSRMLS_CACHE_EXTERN;
#endif
#else
#define EXTNAME_G(v) (extname_globals.v)
#endif

View file

@ -95,6 +95,9 @@ PHP_MSHUTDOWN_FUNCTION(extname)
*/
PHP_RINIT_FUNCTION(extname)
{
#if defined(COMPILE_DL_EXTNAME) && defined(ZTS)
ZEND_TSRMLS_CACHE_UPDATE;
#endif
return SUCCESS;
}
/* }}} */
@ -150,6 +153,9 @@ zend_module_entry extname_module_entry = {
/* }}} */
#ifdef COMPILE_DL_EXTNAME
#ifdef ZTS
ZEND_TSRMLS_CACHE_DEFINE;
#endif
ZEND_GET_MODULE(extname)
#endif