summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2014-12-17 12:37:50 +0100
committerAnatol Belski <ab@php.net>2014-12-17 12:37:50 +0100
commite1fcb9ea66384269e5afa22769bb95cf2eb08306 (patch)
tree990b53510261cdfa7044361dea90eb5efb0f229b
parent9c354ba1827771e0aa7e39eec744cae864652643 (diff)
downloadphp-git-e1fcb9ea66384269e5afa22769bb95cf2eb08306.tar.gz
integrated the static tsrmls cache into ext/skel
-rwxr-xr-xext/ext_skel4
-rw-r--r--ext/skeleton/php_skeleton.h14
-rw-r--r--ext/skeleton/skeleton.c6
3 files changed, 14 insertions, 10 deletions
diff --git a/ext/ext_skel b/ext/ext_skel
index c0c398d15e..a1c64640ae 100755
--- a/ext/ext_skel
+++ b/ext/ext_skel
@@ -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
diff --git a/ext/skeleton/php_skeleton.h b/ext/skeleton/php_skeleton.h
index 7d9b0bce4a..3d23493b68 100644
--- a/ext/skeleton/php_skeleton.h
+++ b/ext/skeleton/php_skeleton.h
@@ -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
diff --git a/ext/skeleton/skeleton.c b/ext/skeleton/skeleton.c
index ba49b0d31a..d432f1c3df 100644
--- a/ext/skeleton/skeleton.c
+++ b/ext/skeleton/skeleton.c
@@ -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