diff options
author | unknown <msvensson@neptunus.(none)> | 2005-04-27 09:59:12 +0200 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2005-04-27 09:59:12 +0200 |
commit | 7e04d257eb2f0cf89f07a161e7ac3762366c5da2 (patch) | |
tree | e08fea906b88d0aa8efd72835e8cea713d2ce9cd /mysys/my_thr_init.c | |
parent | 20cf8f82eefbc4db26ec50aef4f602c991811397 (diff) | |
download | mariadb-git-7e04d257eb2f0cf89f07a161e7ac3762366c5da2.tar.gz |
Bug #9954 mysql-4.1.11/cmd-line-utils/libedit/makelist.sh is not portable
- Changed makelist.sh
- Bump up required version of autoconf
- Use new style to init mutex in my_thr_init
cmd-line-utils/libedit/makelist.sh:
Changed file so it works also on windows cr/lf files.
configure.in:
Bump up required AC version number so that correct version of aclocal and autoconf is selected.
include/my_pthread.h:
Use PTHREAD_MUTEX_ADAPTIVE_NP to see if "fast" mutexes are available
Remove "errorcheck" mutexes, since they are never used.
mysys/my_thr_init.c:
Use new style functions to init mutex if PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP is defined
Add comment what mutex "kind" means
Diffstat (limited to 'mysys/my_thr_init.c')
-rw-r--r-- | mysys/my_thr_init.c | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c index 36b37f68b46..93ba34ea5b4 100644 --- a/mysys/my_thr_init.c +++ b/mysys/my_thr_init.c @@ -40,9 +40,6 @@ 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_errchk_mutexattr; -#endif /* initialize thread environment @@ -62,19 +59,21 @@ my_bool my_thread_global_init(void) fprintf(stderr,"Can't initialize threads: error %d\n",errno); return 1; } + #ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP - pthread_mutexattr_init(&my_fast_mutexattr); /* - Note that the following statement may give a compiler warning under - some configurations, but there isn't anything we can do about this as - this is a bug in the header files for the thread implementation + Set mutex type to "fast" a.k.a "adaptive" + + The mutex kind determines what happens if a thread attempts to lock + a mutex it already owns with pthread_mutex_lock(3). If the mutex + is of the ``fast'' kind, pthread_mutex_lock(3) simply suspends + the calling thread forever. If the mutex is of the ``error checking'' + kind, pthread_mutex_lock(3) returns immediately with the error + code EDEADLK. */ - pthread_mutexattr_setkind_np(&my_fast_mutexattr,PTHREAD_MUTEX_ADAPTIVE_NP); -#endif -#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP - pthread_mutexattr_init(&my_errchk_mutexattr); - pthread_mutexattr_setkind_np(&my_errchk_mutexattr, - PTHREAD_MUTEX_ERRORCHECK_NP); + pthread_mutexattr_init(&my_fast_mutexattr); + pthread_mutexattr_settype(&my_fast_mutexattr, + PTHREAD_MUTEX_ADAPTIVE_NP); #endif pthread_mutex_init(&THR_LOCK_malloc,MY_MUTEX_INIT_FAST); @@ -109,9 +108,6 @@ void my_thread_global_end(void) #ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP pthread_mutexattr_destroy(&my_fast_mutexattr); #endif -#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP - pthread_mutexattr_destroy(&my_errchk_mutexattr); -#endif pthread_mutex_destroy(&THR_LOCK_malloc); pthread_mutex_destroy(&THR_LOCK_open); pthread_mutex_destroy(&THR_LOCK_lock); |