diff options
Diffstat (limited to 'ext/mysql/libmysql/my_thr_init.c')
-rw-r--r-- | ext/mysql/libmysql/my_thr_init.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/ext/mysql/libmysql/my_thr_init.c b/ext/mysql/libmysql/my_thr_init.c index c515822468..9196d9b7af 100644 --- a/ext/mysql/libmysql/my_thr_init.c +++ b/ext/mysql/libmysql/my_thr_init.c @@ -1,5 +1,5 @@ -/* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB - This file is public domain and comes with NO WARRANTY of any kind */ +/* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB +This file is public domain and comes with NO WARRANTY of any kind */ /* ** Functions to handle initializating and allocationg of all mysys & debug @@ -16,11 +16,12 @@ pthread_key(struct st_my_thread_var*, THR_KEY_mysys); pthread_key(struct st_my_thread_var, THR_KEY_mysys); #endif pthread_mutex_t THR_LOCK_malloc,THR_LOCK_open,THR_LOCK_keycache, - THR_LOCK_lock,THR_LOCK_isam,THR_LOCK_heap,THR_LOCK_net; + THR_LOCK_lock,THR_LOCK_isam,THR_LOCK_myisam,THR_LOCK_heap, + THR_LOCK_net, THR_LOCK_charset; #ifndef HAVE_LOCALTIME_R pthread_mutex_t LOCK_localtime_r; #endif -#ifdef __WIN32__ +#ifdef __WIN__ pthread_mutex_t THR_LOCK_thread; #endif @@ -40,9 +41,11 @@ my_bool my_thread_global_init(void) pthread_mutex_init(&THR_LOCK_keycache,NULL); pthread_mutex_init(&THR_LOCK_lock,NULL); pthread_mutex_init(&THR_LOCK_isam,NULL); + pthread_mutex_init(&THR_LOCK_myisam,NULL); pthread_mutex_init(&THR_LOCK_heap,NULL); pthread_mutex_init(&THR_LOCK_net,NULL); -#ifdef __WIN32__ + pthread_mutex_init(&THR_LOCK_charset,NULL); +#ifdef __WIN__ pthread_mutex_init(&THR_LOCK_thread,NULL); #endif #ifndef HAVE_LOCALTIME_R @@ -64,7 +67,7 @@ my_bool my_thread_init(void) { struct st_my_thread_var *tmp; pthread_mutex_lock(&THR_LOCK_lock); -#if !defined(__WIN32__) || defined(USE_TLS) +#if !defined(__WIN__) || defined(USE_TLS) if (my_pthread_getspecific(struct st_my_thread_var *,THR_KEY_mysys)) { pthread_mutex_unlock(&THR_LOCK_lock); @@ -111,11 +114,11 @@ void my_thread_end(void) pthread_cond_destroy(&tmp->suspend); #endif pthread_mutex_destroy(&tmp->mutex); -#if !defined(__WIN32__) || defined(USE_TLS) +#if !defined(__WIN__) || defined(USE_TLS) free(tmp); #endif } -#if !defined(__WIN32__) || defined(USE_TLS) +#if !defined(__WIN__) || defined(USE_TLS) pthread_setspecific(THR_KEY_mysys,0); #endif } @@ -145,7 +148,7 @@ long my_thread_id() { #if defined(HAVE_PTHREAD_GETSEQUENCE_NP) return pthread_getsequence_np(pthread_self()); -#elif defined(__sun) || defined(__sgi) || defined(__linux__) +#elif (defined(__sun) || defined(__sgi) || defined(__linux__)) && !defined(HAVE_mit_thread) return pthread_self(); #else return my_thread_var->id; |