Browse Source

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.
pull/1801/head
Daniel Black 5 years ago
parent
commit
f69c1c9dcb
  1. 1
      include/my_pthread.h
  2. 6
      sql/mysqld.cc

1
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

6
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

Loading…
Cancel
Save