From c49d7f489106792e4924dfc31657abe4ab0d2d79 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 27 Apr 2005 13:29:37 +0200 Subject: Bug #9954 mysql-4.1.11/cmd-line-utils/libedit/makelist.sh is not portable - Reverted removal of errorcheck mutex initialise, used in safe_mutex_init. include/my_pthread.h: Reverted the removal of errorcheck mutex initializer mysys/my_thr_init.c: Reverted the removal of errorcheck mutex initializer Add destruction of mutex initializer --- include/my_pthread.h | 6 ++++++ mysys/my_thr_init.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/include/my_pthread.h b/include/my_pthread.h index b5b282238ba..fde62655c5f 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -612,6 +612,12 @@ extern pthread_mutexattr_t my_fast_mutexattr; #else #define MY_MUTEX_INIT_FAST NULL #endif +#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP +extern pthread_mutexattr_t my_errorcheck_mutexattr; +#define MY_MUTEX_INIT_ERRCHK &my_errorcheck_mutexattr +#else +#define MY_MUTEX_INIT_ERRCHK NULL +#endif extern my_bool my_thread_global_init(void); extern void my_thread_global_end(void); diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c index 93ba34ea5b4..878e1f6bfc6 100644 --- a/mysys/my_thr_init.c +++ b/mysys/my_thr_init.c @@ -40,6 +40,9 @@ pthread_mutex_t LOCK_gethostbyname_r; #ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP pthread_mutexattr_t my_fast_mutexattr; #endif +#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP +pthread_mutexattr_t my_errorcheck_mutexattr; +#endif /* initialize thread environment @@ -75,6 +78,14 @@ my_bool my_thread_global_init(void) pthread_mutexattr_settype(&my_fast_mutexattr, PTHREAD_MUTEX_ADAPTIVE_NP); #endif +#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP + /* + Set mutex type to "errorcheck" a.k.a "adaptive" + */ + pthread_mutexattr_init(&my_errorcheck_mutexattr); + pthread_mutexattr_settype(&my_errorcheck_mutexattr, + PTHREAD_MUTEX_ERRORCHECK); +#endif pthread_mutex_init(&THR_LOCK_malloc,MY_MUTEX_INIT_FAST); pthread_mutex_init(&THR_LOCK_open,MY_MUTEX_INIT_FAST); @@ -107,6 +118,9 @@ void my_thread_global_end(void) pthread_key_delete(THR_KEY_mysys); #ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP pthread_mutexattr_destroy(&my_fast_mutexattr); +#endif +#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP + pthread_mutexattr_destroy(&my_errorcheck_mutexattr); #endif pthread_mutex_destroy(&THR_LOCK_malloc); pthread_mutex_destroy(&THR_LOCK_open); -- cgit v1.2.1