From f69c1c9dcb815d7597ec2035470a81ac3b6c9380 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Tue, 6 Apr 2021 16:57:38 +1000 Subject: [PATCH] MDEV-19508: SI_KERNEL is not on all implementations SI_USER is, however in FreeBSD there are a couple of non-kernel user signal infomations above SI_KERNEL. Put a fallback just in case there is nothing available. --- include/my_pthread.h | 1 - sql/mysqld.cc | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/my_pthread.h b/include/my_pthread.h index 81dd63ee331..bc47bb8bad0 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -197,7 +197,6 @@ static inline int my_sigwait(sigset_t *set, int *sig, int *code) *code= siginfo.si_code; return *sig < 0 ? errno : 0; #else -#define SI_KERNEL 128 *code= 0; return sigwait(set, sig); #endif diff --git a/sql/mysqld.cc b/sql/mysqld.cc index c536cdef504..7e3ce878cdc 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -3253,7 +3253,13 @@ pthread_handler_t signal_hand(void *arg __attribute__((unused))) } break; case SIGHUP: +#if defined(SI_KERNEL) if (!abort_loop && origin != SI_KERNEL) +#elif defined(SI_USER) + if (!abort_loop && origin <= SI_USER) +#else + if (!abort_loop) +#endif { int not_used; mysql_print_status(); // Print some debug info