summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Black <daniel@mariadb.org>2021-04-06 16:57:38 +1000
committerDaniel Black <daniel@mariadb.org>2021-04-07 14:01:56 +1000
commitf69c1c9dcb815d7597ec2035470a81ac3b6c9380 (patch)
tree09bd247f8d64004e76dce6295412b4659019e764
parent5b71e0424c0c647c39798fd1791e8b68d730d784 (diff)
downloadmariadb-git-f69c1c9dcb815d7597ec2035470a81ac3b6c9380.tar.gz
MDEV-19508: SI_KERNEL is not on all implementationsbb-10.4-danielblack-MDEV-19508-minimal-compile-fix
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.
-rw-r--r--include/my_pthread.h1
-rw-r--r--sql/mysqld.cc6
2 files changed, 6 insertions, 1 deletions
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