diff options
author | unknown <monty@bitch.mysql.fi> | 2001-11-21 15:24:02 +0200 |
---|---|---|
committer | unknown <monty@bitch.mysql.fi> | 2001-11-21 15:24:02 +0200 |
commit | 2283f2d8327efad0421196bc9359c3336c27a7c8 (patch) | |
tree | 3672cd1316cec42d33f2bb5de7e1c81412ac06e8 /sql | |
parent | 689a55b1ad270391708bdff972f524ef9a9f79b5 (diff) | |
parent | 0afe57ba58fdfdc8a11a7d1d516a18753f35a37b (diff) | |
download | mariadb-git-2283f2d8327efad0421196bc9359c3336c27a7c8.tar.gz |
Merge
sql/mysqld.cc:
Auto merged
Docs/manual.texi:
SCCS merged
Diffstat (limited to 'sql')
-rw-r--r-- | sql/mysqld.cc | 35 | ||||
-rw-r--r-- | sql/stacktrace.c | 2 |
2 files changed, 21 insertions, 16 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 5e6b5c098d7..f56cad86086 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1116,6 +1116,19 @@ static void start_signal_handler(void) } #elif defined(__EMX__) +static void init_signals(void) +{ + signal(SIGQUIT, sig_kill); + signal(SIGKILL, sig_kill); + signal(SIGTERM, sig_kill); + signal(SIGINT, sig_kill); + signal(SIGHUP, sig_reload); // Flush everything + signal(SIGALRM, SIG_IGN); + signal(SIGBREAK,SIG_IGN); + signal_thread = pthread_self(); +} + + static void sig_reload(int signo) { reload_acl_and_cache((THD*) 0,REFRESH_LOG, (TABLE_LIST*) 0); // Flush everything @@ -1132,22 +1145,10 @@ static void sig_kill(int signo) signal(signo, SIG_ACK); } -static void init_signals(void) -{ - signal(SIGQUIT, sig_kill); - signal(SIGKILL, sig_kill); - signal(SIGTERM, sig_kill); - signal(SIGINT, sig_kill); - signal(SIGHUP, sig_reload); // Flush everything - signal(SIGALRM, SIG_IGN); - signal(SIGBREAK,SIG_IGN); - signal_thread = pthread_self(); -} static void start_signal_handler(void) { } - #else /* if ! __WIN__ && ! __EMX__ */ #ifdef HAVE_LINUXTHREADS @@ -1157,10 +1158,12 @@ static void start_signal_handler(void) static sig_handler handle_segfault(int sig) { THD *thd=current_thd; - // strictly speaking, one needs a mutex here - // but since we have got SIGSEGV already, things are a mess - // so not having the mutex is not as bad as possibly using a buggy - // mutex - so we keep things simple + /* + Strictly speaking, we should need a mutex here + but since we have got SIGSEGV already, things are a mess + so not having the mutex is not as bad as possibly using a buggy + mutex - so we keep things simple. + */ if (segfaulted) { fprintf(stderr, "Fatal signal %d while backtracing\n", sig); diff --git a/sql/stacktrace.c b/sql/stacktrace.c index 81d8debc27a..18db1949db9 100644 --- a/sql/stacktrace.c +++ b/sql/stacktrace.c @@ -218,5 +218,7 @@ void write_core(int sig) { signal(sig, SIG_DFL); pthread_kill(pthread_self(), sig); + /* On Solaris, the above kill is not enough */ + sigsend(P_PID,P_MYID,sig); } #endif |