From 8b714e507f9e2c216ad043a10db99ea558e9285b Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Wed, 17 Apr 2013 23:37:06 +0300 Subject: Changed the client library to only mark memory as THREAD_SPECIFIC if one has called mysql_options() with MYSQL_OPT_USE_THREAD_SPECIFIC_MEMORY include/mysql.h: Added MYSQL_OPT_USE_THREAD_SPECIFIC_MEMORY include/mysql.h.pp: Updated file sql-common/client.c: Marked client memory as THREAD_SPECIFIC sql/event_db_repository.cc: Fixed compiler warning sql/slave.cc: Marked client memory as THREAD_SPECIFIC storage/federatedx/federatedx_io_mysql.cc: Marked client memory as THREAD_SPECIFIC storage/federatedx/ha_federatedx.cc: Marked client memory as THREAD_SPECIFIC storage/sphinx/ha_sphinx.cc: Marked client memory as THREAD_SPECIFIC --- sql-common/client.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'sql-common') diff --git a/sql-common/client.c b/sql-common/client.c index 2d83f2ef215..507917b0722 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -892,7 +892,9 @@ void free_old_query(MYSQL *mysql) if (mysql->fields) free_root(&mysql->field_alloc,MYF(0)); /* Assume rowlength < 8192 */ - init_alloc_root(&mysql->field_alloc, 8192, 0, MYF(MY_THREAD_SPECIFIC)); + init_alloc_root(&mysql->field_alloc, 8192, 0, + MYF(mysql->options.use_thread_specific_memory ? + MY_THREAD_SPECIFIC : 0)); mysql->fields= 0; mysql->field_count= 0; /* For API */ mysql->warning_count= 0; @@ -1578,7 +1580,9 @@ MYSQL_DATA *cli_read_rows(MYSQL *mysql,MYSQL_FIELD *mysql_fields, DBUG_RETURN(0); } /* Assume rowlength < 8192 */ - init_alloc_root(&result->alloc, 8192, 0, MYF(MY_THREAD_SPECIFIC)); + init_alloc_root(&result->alloc, 8192, 0, + MYF(mysql->options.use_thread_specific_memory ? + MY_THREAD_SPECIFIC : 0)); result->alloc.min_malloc=sizeof(MYSQL_ROWS); prev_ptr= &result->data; result->rows=0; @@ -4206,6 +4210,9 @@ mysql_options(MYSQL *mysql,enum mysql_option option, const void *arg) case MYSQL_OPT_RECONNECT: mysql->reconnect= *(my_bool *) arg; break; + case MYSQL_OPT_USE_THREAD_SPECIFIC_MEMORY: + mysql->options.use_thread_specific_memory= *(my_bool *) arg; + break; case MYSQL_OPT_SSL_VERIFY_SERVER_CERT: if (*(my_bool*) arg) mysql->options.client_flag|= CLIENT_SSL_VERIFY_SERVER_CERT; -- cgit v1.2.1