mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
077840fa23
into a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-4.1 include/thr_alarm.h: Auto merged mysys/my_pthread.c: Auto merged BUILD/SETUP.sh: Merged from 4.0 configure.in: Merged from 4.0 include/my_global.h: Merged from 4.0 include/my_pthread.h: Merged from 4.0 mysys/thr_alarm.c: Merged from 4.0 sql/mysqld.cc: Merged from 4.0 BUILD/SETUP.sh.rej: Merged from 4.0 configure.in.rej: Merged from 4.0 include/my_global.h.rej: Merged from 4.0 include/my_pthread.h.rej: Merged from 4.0 mysys/thr_alarm.c.rej: Merged from 4.0 sql/mysqld.cc.rej: Merged from 4.0
161 lines
4.2 KiB
Text
161 lines
4.2 KiB
Text
***************
|
|
*** 177,188 ****
|
|
} /* cplusplus */
|
|
|
|
|
|
- #if defined(HAVE_LINUXTHREADS)
|
|
- #define THR_KILL_SIGNAL SIGINT
|
|
- #else
|
|
- #define THR_KILL_SIGNAL SIGUSR2 // Can't use this with LinuxThreads
|
|
- #endif
|
|
-
|
|
#ifdef HAVE_GLIBC2_STYLE_GETHOSTBYNAME_R
|
|
#include <sys/types.h>
|
|
#else
|
|
--- 177,182 ----
|
|
} /* cplusplus */
|
|
|
|
|
|
#ifdef HAVE_GLIBC2_STYLE_GETHOSTBYNAME_R
|
|
#include <sys/types.h>
|
|
#else
|
|
***************
|
|
*** 505,510 ****
|
|
static void clean_up_mutexes(void);
|
|
static int test_if_case_insensitive(const char *dir_name);
|
|
static void create_pid_file();
|
|
|
|
/****************************************************************************
|
|
** Code to end mysqld
|
|
--- 499,505 ----
|
|
static void clean_up_mutexes(void);
|
|
static int test_if_case_insensitive(const char *dir_name);
|
|
static void create_pid_file();
|
|
+ static uint get_thread_lib(void);
|
|
|
|
/****************************************************************************
|
|
** Code to end mysqld
|
|
***************
|
|
*** 544,550 ****
|
|
DBUG_PRINT("info",("Waiting for select_thread"));
|
|
|
|
#ifndef DONT_USE_THR_ALARM
|
|
! if (pthread_kill(select_thread,THR_CLIENT_ALARM))
|
|
break; // allready dead
|
|
#endif
|
|
set_timespec(abstime, 2);
|
|
--- 539,546 ----
|
|
DBUG_PRINT("info",("Waiting for select_thread"));
|
|
|
|
#ifndef DONT_USE_THR_ALARM
|
|
! if (pthread_kill(select_thread,
|
|
! thd_lib_detected == THD_LIB_LT ? SIGALRM : SIGUSR1))
|
|
break; // allready dead
|
|
#endif
|
|
set_timespec(abstime, 2);
|
|
***************
|
|
*** 844,850 ****
|
|
sig,my_thread_id());
|
|
}
|
|
#ifdef DONT_REMEMBER_SIGNAL
|
|
! sigset(sig,print_signal_warning); /* int. thread system calls */
|
|
#endif
|
|
#if !defined(__WIN__) && !defined(OS2) && !defined(__NETWARE__)
|
|
if (sig == SIGALRM)
|
|
--- 840,846 ----
|
|
sig,my_thread_id());
|
|
}
|
|
#ifdef DONT_REMEMBER_SIGNAL
|
|
! my_sigset(sig, print_signal_warning); /* int. thread system calls */
|
|
#endif
|
|
#if !defined(__WIN__) && !defined(OS2) && !defined(__NETWARE__)
|
|
if (sig == SIGALRM)
|
|
***************
|
|
*** 1841,1848 ****
|
|
DBUG_ENTER("init_signals");
|
|
|
|
if (test_flags & TEST_SIGINT)
|
|
! sigset(THR_KILL_SIGNAL,end_thread_signal);
|
|
! sigset(THR_SERVER_ALARM,print_signal_warning); // Should never be called!
|
|
|
|
if (!(test_flags & TEST_NO_STACKTRACE) || (test_flags & TEST_CORE_ON_SIGNAL))
|
|
{
|
|
--- 1837,1847 ----
|
|
DBUG_ENTER("init_signals");
|
|
|
|
if (test_flags & TEST_SIGINT)
|
|
! {
|
|
! my_sigset(thd_lib_detected == THD_LIB_LT ? SIGINT : SIGUSR2,
|
|
! end_thread_signal);
|
|
! }
|
|
! my_sigset(THR_SERVER_ALARM, print_signal_warning); // Should never be called!
|
|
|
|
if (!(test_flags & TEST_NO_STACKTRACE) || (test_flags & TEST_CORE_ON_SIGNAL))
|
|
{
|
|
***************
|
|
*** 1877,1883 ****
|
|
#endif
|
|
(void) sigemptyset(&set);
|
|
#ifdef THREAD_SPECIFIC_SIGPIPE
|
|
! sigset(SIGPIPE,abort_thread);
|
|
sigaddset(&set,SIGPIPE);
|
|
#else
|
|
(void) signal(SIGPIPE,SIG_IGN); // Can't know which thread
|
|
--- 1876,1882 ----
|
|
#endif
|
|
(void) sigemptyset(&set);
|
|
#ifdef THREAD_SPECIFIC_SIGPIPE
|
|
! my_sigset(SIGPIPE, abort_thread);
|
|
sigaddset(&set,SIGPIPE);
|
|
#else
|
|
(void) signal(SIGPIPE,SIG_IGN); // Can't know which thread
|
|
***************
|
|
*** 2237,2244 ****
|
|
MY_INIT(argv[0]); // init my_sys library & pthreads
|
|
tzset(); // Set tzname
|
|
|
|
start_time=time((time_t*) 0);
|
|
-
|
|
#ifdef OS2
|
|
{
|
|
// fix timezone for daylight saving
|
|
--- 2236,2243 ----
|
|
MY_INIT(argv[0]); // init my_sys library & pthreads
|
|
tzset(); // Set tzname
|
|
|
|
+ thd_lib_detected= get_thread_lib();
|
|
start_time=time((time_t*) 0);
|
|
#ifdef OS2
|
|
{
|
|
// fix timezone for daylight saving
|
|
***************
|
|
*** 5547,5552 ****
|
|
(void) my_write(file, (byte*) buff, (uint) (end-buff),MYF(MY_WME));
|
|
(void) my_close(file, MYF(0));
|
|
}
|
|
}
|
|
|
|
|
|
--- 5546,5567 ----
|
|
(void) my_write(file, (byte*) buff, (uint) (end-buff),MYF(MY_WME));
|
|
(void) my_close(file, MYF(0));
|
|
}
|
|
+ }
|
|
+
|
|
+
|
|
+ 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;
|
|
+ else if (!strncasecmp(buff, "linuxthreads", 12))
|
|
+ return THD_LIB_LT;
|
|
+ #endif
|
|
+ return THD_LIB_OTHER;
|
|
}
|
|
|
|
|