mirror of
https://github.com/php/php-src.git
synced 2025-08-18 06:58:55 +02:00
Upgrade ext/mysql/libmysql to version 3.23.39. No major changes -
portability fixes. Also add configure test for HAVE_INT_8_16_32 which should solve compilation problems on AIX.
This commit is contained in:
parent
304ac03be4
commit
e8cbbc0637
32 changed files with 269 additions and 159 deletions
|
@ -14,13 +14,19 @@ This file is public domain and comes with NO WARRANTY of any kind */
|
|||
pthread_key(struct st_my_thread_var*, THR_KEY_mysys);
|
||||
#else
|
||||
pthread_key(struct st_my_thread_var, THR_KEY_mysys);
|
||||
#endif
|
||||
#endif /* USE_TLS */
|
||||
pthread_mutex_t THR_LOCK_malloc,THR_LOCK_open,THR_LOCK_keycache,
|
||||
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 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
|
||||
|
||||
/* FIXME Note. TlsAlloc does not set an auto destructor, so
|
||||
the function my_thread_global_free must be called from
|
||||
|
@ -33,20 +39,30 @@ my_bool my_thread_global_init(void)
|
|||
fprintf(stderr,"Can't initialize threads: error %d\n",errno);
|
||||
exit(1);
|
||||
}
|
||||
pthread_mutex_init(&THR_LOCK_malloc,NULL);
|
||||
pthread_mutex_init(&THR_LOCK_open,NULL);
|
||||
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);
|
||||
pthread_mutex_init(&THR_LOCK_charset,NULL);
|
||||
#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
|
||||
pthread_mutexattr_init(&my_fast_mutexattr);
|
||||
pthread_mutexattr_setkind_np(&my_fast_mutexattr,PTHREAD_MUTEX_ADAPTIVE_NP);
|
||||
#endif
|
||||
#ifdef PPTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
|
||||
pthread_mutexattr_init(&my_errchk_mutexattr);
|
||||
pthread_mutexattr_setkind_np(&my_errchk_mutexattr,
|
||||
PTHREAD_MUTEX_ERRORCHECK_NP);
|
||||
#endif
|
||||
|
||||
pthread_mutex_init(&THR_LOCK_malloc,MY_MUTEX_INIT_FAST);
|
||||
pthread_mutex_init(&THR_LOCK_open,MY_MUTEX_INIT_FAST);
|
||||
pthread_mutex_init(&THR_LOCK_keycache,MY_MUTEX_INIT_FAST);
|
||||
pthread_mutex_init(&THR_LOCK_lock,MY_MUTEX_INIT_FAST);
|
||||
pthread_mutex_init(&THR_LOCK_isam,MY_MUTEX_INIT_SLOW);
|
||||
pthread_mutex_init(&THR_LOCK_myisam,MY_MUTEX_INIT_SLOW);
|
||||
pthread_mutex_init(&THR_LOCK_heap,MY_MUTEX_INIT_FAST);
|
||||
pthread_mutex_init(&THR_LOCK_net,MY_MUTEX_INIT_FAST);
|
||||
pthread_mutex_init(&THR_LOCK_charset,MY_MUTEX_INIT_FAST);
|
||||
#ifdef __WIN__
|
||||
win_pthread_init();
|
||||
#endif
|
||||
#ifndef HAVE_LOCALTIME_R
|
||||
pthread_mutex_init(&LOCK_localtime_r,NULL);
|
||||
pthread_mutex_init(&LOCK_localtime_r,MY_MUTEX_INIT_SLOW);
|
||||
#endif
|
||||
return my_thread_init();
|
||||
}
|
||||
|
@ -56,6 +72,12 @@ void my_thread_global_end(void)
|
|||
#if defined(USE_TLS)
|
||||
(void) TlsFree(THR_KEY_mysys);
|
||||
#endif
|
||||
#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
|
||||
pthread_mutexattr_destroy(&my_fast_mutexattr);
|
||||
#endif
|
||||
#ifdef PPTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
|
||||
pthread_mutexattr_destroy(&my_errchk_mutexattr);
|
||||
#endif
|
||||
}
|
||||
|
||||
static long thread_id=0;
|
||||
|
@ -100,7 +122,7 @@ my_bool my_thread_init(void)
|
|||
tmp= &THR_KEY_mysys;
|
||||
#endif
|
||||
tmp->id= ++thread_id;
|
||||
pthread_mutex_init(&tmp->mutex,NULL);
|
||||
pthread_mutex_init(&tmp->mutex,MY_MUTEX_INIT_FAST);
|
||||
pthread_cond_init(&tmp->suspend, NULL);
|
||||
#if !defined(__WIN__) || defined(USE_TLS) || ! defined(SAFE_MUTEX)
|
||||
pthread_mutex_unlock(&THR_LOCK_lock);
|
||||
|
@ -166,14 +188,14 @@ long my_thread_id()
|
|||
}
|
||||
|
||||
#ifdef DBUG_OFF
|
||||
char *my_thread_name(void)
|
||||
const char *my_thread_name(void)
|
||||
{
|
||||
return "no_name";
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
char *my_thread_name(void)
|
||||
const char *my_thread_name(void)
|
||||
{
|
||||
char name_buff[100];
|
||||
struct st_my_thread_var *tmp=my_thread_var;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue