summaryrefslogtreecommitdiff
path: root/ext/mysql/libmysql/my_thr_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysql/libmysql/my_thr_init.c')
-rw-r--r--ext/mysql/libmysql/my_thr_init.c21
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;