diff options
author | unknown <msvensson@neptunus.(none)> | 2006-05-19 13:10:52 +0200 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2006-05-19 13:10:52 +0200 |
commit | 5c484b20bfcbcfebe1317715d4de159008d50574 (patch) | |
tree | f8aabf84893de2b7cc3ed8a39ba8f082f027a64b | |
parent | ce7a7b20d1afa0fb1ba0e85430114193ba45cbdd (diff) | |
parent | 5ceb394fe22182055cb16b99bec3c6fe6b1dc3d8 (diff) | |
download | mariadb-git-5c484b20bfcbcfebe1317715d4de159008d50574.tar.gz |
Merge neptunus.(none):/home/msvensson/mysql/my41-bug13711
into neptunus.(none):/home/msvensson/mysql/mysql-4.1
-rw-r--r-- | include/my_pthread.h | 6 | ||||
-rw-r--r-- | sql/mysqld.cc | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/include/my_pthread.h b/include/my_pthread.h index b6b65d4389a..8d03de49574 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -329,12 +329,14 @@ int sigwait(sigset_t *setp, int *sigp); /* Use our implemention */ we want to make sure that no such flags are set. */ #if defined(HAVE_SIGACTION) && !defined(my_sigset) -#define my_sigset(A,B) do { struct sigaction s; sigset_t set; \ +#define my_sigset(A,B) do { struct sigaction s; sigset_t set; int rc; \ + DBUG_ASSERT((A) != 0); \ sigemptyset(&set); \ s.sa_handler = (B); \ s.sa_mask = set; \ s.sa_flags = 0; \ - sigaction((A), &s, (struct sigaction *) NULL); \ + rc= sigaction((A), &s, (struct sigaction *) NULL);\ + DBUG_ASSERT(rc == 0); \ } while (0) #elif defined(HAVE_SIGSET) && !defined(my_sigset) #define my_sigset(A,B) sigset((A),(B)) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 740e1a419c7..9c1089dbdb2 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -884,7 +884,8 @@ static void __cdecl kill_server(int sig_ptr) RETURN_FROM_KILL_SERVER; kill_in_progress=TRUE; abort_loop=1; // This should be set - my_sigset(sig,SIG_IGN); + if (sig != 0) // 0 is not a valid signal number + my_sigset(sig,SIG_IGN); if (sig == MYSQL_KILL_SIGNAL || sig == 0) sql_print_information(ER(ER_NORMAL_SHUTDOWN),my_progname); else |