mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
restored run-time thread lib detection
sql/stacktrace.c: removed code duplication sql/stacktrace.h: removed code duplication
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
|
||||
#include "mysys_priv.h"
|
||||
#include <m_string.h>
|
||||
#include <signal.h>
|
||||
|
||||
#ifdef THREAD
|
||||
#ifdef USE_TLS
|
||||
@@ -63,6 +64,8 @@ nptl_pthread_exit_hack_handler(void *arg __attribute((unused)))
|
||||
#endif
|
||||
|
||||
|
||||
static uint get_thread_lib(void);
|
||||
|
||||
/*
|
||||
initialize thread environment
|
||||
|
||||
@@ -76,6 +79,8 @@ nptl_pthread_exit_hack_handler(void *arg __attribute((unused)))
|
||||
|
||||
my_bool my_thread_global_init(void)
|
||||
{
|
||||
thd_lib_detected= get_thread_lib();
|
||||
|
||||
if (pthread_key_create(&THR_KEY_mysys,0))
|
||||
{
|
||||
fprintf(stderr,"Can't initialize threads: error %d\n",errno);
|
||||
@@ -395,4 +400,20 @@ const char *my_thread_name(void)
|
||||
}
|
||||
#endif /* DBUG_OFF */
|
||||
|
||||
|
||||
static uint get_thread_lib(void)
|
||||
{
|
||||
char buff[64];
|
||||
|
||||
#ifdef _CS_GNU_LIBPTHREAD_VERSION
|
||||
confstr(_CS_GNU_LIBPTHREAD_VERSION, buff, sizeof(buff));
|
||||
|
||||
if (!strncasecmp(buff, "NPTL", 4))
|
||||
return THD_LIB_NPTL;
|
||||
if (!strncasecmp(buff, "linuxthreads", 12))
|
||||
return THD_LIB_LT;
|
||||
#endif
|
||||
return THD_LIB_OTHER;
|
||||
}
|
||||
|
||||
#endif /* THREAD */
|
||||
|
Reference in New Issue
Block a user