converted ext/sqlite and ext/pdo_mysql to use static tsrmls cache

This commit is contained in:
Anatol Belski 2014-10-16 18:50:19 +02:00
parent 073c79b8b5
commit aac7b1db7c
8 changed files with 23 additions and 5 deletions

View File

@ -144,7 +144,7 @@ if test "$PHP_PDO_MYSQL" != "no"; then
fi fi
dnl fix after renaming to pdo_mysql dnl fix after renaming to pdo_mysql
PHP_NEW_EXTENSION(pdo_mysql, pdo_mysql.c mysql_driver.c mysql_statement.c, $ext_shared,,-I$pdo_cv_inc_path -I) PHP_NEW_EXTENSION(pdo_mysql, pdo_mysql.c mysql_driver.c mysql_statement.c, $ext_shared,,-I$pdo_cv_inc_path -I -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
ifdef([PHP_ADD_EXTENSION_DEP], ifdef([PHP_ADD_EXTENSION_DEP],
[ [
PHP_ADD_EXTENSION_DEP(pdo_mysql, pdo) PHP_ADD_EXTENSION_DEP(pdo_mysql, pdo)

View File

@ -12,7 +12,7 @@ if (PHP_PDO_MYSQL != "no") {
} else { } else {
if (CHECK_LIB("libmysql.lib", "pdo_mysql", PHP_PDO_MYSQL) && if (CHECK_LIB("libmysql.lib", "pdo_mysql", PHP_PDO_MYSQL) &&
CHECK_HEADER_ADD_INCLUDE("mysql.h", "CFLAGS_PDO_MYSQL", PHP_PHP_BUILD + "\\include\\mysql;" + PHP_PDO_MYSQL)) { CHECK_HEADER_ADD_INCLUDE("mysql.h", "CFLAGS_PDO_MYSQL", PHP_PHP_BUILD + "\\include\\mysql;" + PHP_PDO_MYSQL)) {
EXTENSION("pdo_mysql", "pdo_mysql.c mysql_driver.c mysql_statement.c"); EXTENSION("pdo_mysql", "pdo_mysql.c mysql_driver.c mysql_statement.c", null, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
} else { } else {
WARNING("pdo_mysql not enabled; libraries and headers not found"); WARNING("pdo_mysql not enabled; libraries and headers not found");
} }

View File

@ -32,6 +32,9 @@
#include "php_pdo_mysql_int.h" #include "php_pdo_mysql_int.h"
#ifdef COMPILE_DL_PDO_MYSQL #ifdef COMPILE_DL_PDO_MYSQL
#ifdef ZTS
ZEND_TSRMLS_CACHE_DEFINE;
#endif
ZEND_GET_MODULE(pdo_mysql) ZEND_GET_MODULE(pdo_mysql)
#endif #endif
@ -206,6 +209,9 @@ static PHP_RSHUTDOWN_FUNCTION(pdo_mysql)
*/ */
static PHP_GINIT_FUNCTION(pdo_mysql) static PHP_GINIT_FUNCTION(pdo_mysql)
{ {
#if defined(COMPILE_DL_PDO_MYSQL) && defined(ZTS)
ZEND_TSRMLS_CACHE_UPDATE;
#endif
#ifndef PHP_WIN32 #ifndef PHP_WIN32
pdo_mysql_globals->default_socket = NULL; pdo_mysql_globals->default_socket = NULL;
#endif #endif

View File

@ -83,7 +83,10 @@ ZEND_END_MODULE_GLOBALS(pdo_mysql)
ZEND_EXTERN_MODULE_GLOBALS(pdo_mysql) ZEND_EXTERN_MODULE_GLOBALS(pdo_mysql)
#ifdef ZTS #ifdef ZTS
#define PDO_MYSQL_G(v) TSRMG(pdo_mysql_globals_id, zend_pdo_mysql_globals *, v) #define PDO_MYSQL_G(v) ZEND_TSRMG(pdo_mysql_globals_id, zend_pdo_mysql_globals *, v)
# ifdef COMPILE_DL_PDO_MYSQL
ZEND_TSRMLS_CACHE_EXTERN;
# endif
#else #else
#define PDO_MYSQL_G(v) (pdo_mysql_globals.v) #define PDO_MYSQL_G(v) (pdo_mysql_globals.v)
#endif #endif

View File

@ -5,7 +5,7 @@ ARG_WITH("sqlite3", "SQLite 3 support", "no");
if (PHP_SQLITE3 != "no") { if (PHP_SQLITE3 != "no") {
ADD_FLAG("CFLAGS_SQLITE3", "/D SQLITE_THREADSAFE=" + (PHP_ZTS == "yes" ? "1" : "0") + " /D SQLITE_ENABLE_FTS3=1 /D SQLITE_ENABLE_COLUMN_METADATA=1 /D SQLITE_CORE=1 /D SQLITE_API=__declspec(dllexport) "); ADD_FLAG("CFLAGS_SQLITE3", "/D SQLITE_THREADSAFE=" + (PHP_ZTS == "yes" ? "1" : "0") + " /D SQLITE_ENABLE_FTS3=1 /D SQLITE_ENABLE_COLUMN_METADATA=1 /D SQLITE_CORE=1 /D SQLITE_API=__declspec(dllexport) ");
EXTENSION("sqlite3", "sqlite3.c", null, "/I" + configure_module_dirname + "/libsqlite /I" + configure_module_dirname); EXTENSION("sqlite3", "sqlite3.c", null, "/I" + configure_module_dirname + "/libsqlite /I" + configure_module_dirname + " /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
ADD_SOURCES(configure_module_dirname + "/libsqlite", "sqlite3.c", "sqlite3"); ADD_SOURCES(configure_module_dirname + "/libsqlite", "sqlite3.c", "sqlite3");

View File

@ -8,7 +8,7 @@ PHP_ARG_WITH(sqlite3, whether to enable the SQLite3 extension,
if test $PHP_SQLITE3 != "no"; then if test $PHP_SQLITE3 != "no"; then
sqlite3_extra_sources="" sqlite3_extra_sources=""
PHP_SQLITE3_CFLAGS="" PHP_SQLITE3_CFLAGS=" -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 "
dnl when running phpize enable_maintainer_zts is not available dnl when running phpize enable_maintainer_zts is not available
if test -z "$enable_maintainer_zts"; then if test -z "$enable_maintainer_zts"; then

View File

@ -32,6 +32,9 @@ ZEND_END_MODULE_GLOBALS(sqlite3)
#ifdef ZTS #ifdef ZTS
# define SQLITE3G(v) TSRMG(sqlite3_globals_id, zend_sqlite3_globals *, v) # define SQLITE3G(v) TSRMG(sqlite3_globals_id, zend_sqlite3_globals *, v)
# ifdef COMPILE_DL_SQLITE3
ZEND_TSRMLS_CACHE_EXTERN;
# endif
#else #else
# define SQLITE3G(v) (sqlite3_globals.v) # define SQLITE3G(v) (sqlite3_globals.v)
#endif #endif

View File

@ -2271,6 +2271,9 @@ PHP_MINFO_FUNCTION(sqlite3)
*/ */
static PHP_GINIT_FUNCTION(sqlite3) static PHP_GINIT_FUNCTION(sqlite3)
{ {
#if defined(COMPILE_DL_SQLITE3) && defined(ZTS)
ZEND_TSRMLS_CACHE_UPDATE;
#endif
memset(sqlite3_globals, 0, sizeof(*sqlite3_globals)); memset(sqlite3_globals, 0, sizeof(*sqlite3_globals));
} }
/* }}} */ /* }}} */
@ -2296,6 +2299,9 @@ zend_module_entry sqlite3_module_entry = {
/* }}} */ /* }}} */
#ifdef COMPILE_DL_SQLITE3 #ifdef COMPILE_DL_SQLITE3
#ifdef ZTS
ZEND_TSRMLS_CACHE_DEFINE;
#endif
ZEND_GET_MODULE(sqlite3) ZEND_GET_MODULE(sqlite3)
#endif #endif