From 6414e4423c03dbc07cba97560d390c9c98e390ff Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 8 Oct 2021 15:31:04 +0200 Subject: [PATCH] CLEANUP: wdt: do not remap SI_TKILL to SI_LWP, test the values directly We used to remap SI_TKILL to SI_LWP when SI_TKILL was not available (e.g. FreeBSD) but that's ugly and since we need this only in a single switch/case block in wdt.c it's even simpler and cleaner to perform the two tests there, so let's do this. --- include/haproxy/compat.h | 6 ------ src/wdt.c | 12 +++++++++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/include/haproxy/compat.h b/include/haproxy/compat.h index edcbcd5..25b15a1 100644 --- a/include/haproxy/compat.h +++ b/include/haproxy/compat.h @@ -23,7 +23,6 @@ #define _HAPROXY_COMPAT_H #include -#include #include /* This is needed on Linux for Netfilter includes */ #include @@ -154,11 +153,6 @@ typedef struct { } empty_t; #define F_SETPIPE_SZ (1024 + 7) #endif -/* On FreeBSD we don't have SI_TKILL but SI_LWP instead */ -#if !defined(SI_TKILL) && defined(SI_LWP) -#define SI_TKILL SI_LWP -#endif - #if defined(USE_TPROXY) && defined(USE_NETFILTER) #include #include diff --git a/src/wdt.c b/src/wdt.c index d1428a5..96db84b 100644 --- a/src/wdt.c +++ b/src/wdt.c @@ -104,11 +104,21 @@ void wdt_handler(int sig, siginfo_t *si, void *arg) /* No doubt now, there's no hop to recover, die loudly! */ break; -#ifdef USE_THREAD + +#if defined(USE_THREAD) && defined(SI_TKILL) /* Linux uses this */ + case SI_TKILL: /* we got a pthread_kill, stop on it */ thr = tid; break; + +#elif defined(USE_THREAD) && defined(SI_LWP) /* FreeBSD uses this */ + + case SI_LWP: + /* we got a pthread_kill, stop on it */ + thr = tid; + break; + #endif default: /* unhandled other conditions */ -- 1.7.10.4