Changeset

13618:3118dc02f908

util.signal: Factor out single #define that enables signalfd(2) use Makes it easier to test by disabling this #define
author Kim Alvefur <zash@zash.se>
date Fri, 10 Jan 2025 12:31:27 +0100
parents 13617:7722a3aa2ff5
children 13619:981bbe358771
files util-src/signal.c
diffstat 1 files changed, 10 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/util-src/signal.c	Fri Jan 10 03:18:46 2025 +0100
+++ b/util-src/signal.c	Fri Jan 10 12:31:27 2025 +0100
@@ -30,10 +30,14 @@
 #define _GNU_SOURCE
 #endif
 
+#ifdef __linux__
+#define HAVE_SIGNALFD
+#endif
+
 #include <signal.h>
 #include <stdlib.h>
 #include <unistd.h>
-#ifdef __linux__
+#ifdef HAVE_SIGNALFD
 #include <sys/signalfd.h>
 #endif
 
@@ -375,12 +379,12 @@
 struct lsignalfd {
 	int fd;
 	sigset_t mask;
-#ifndef __linux__
+#ifndef HAVE_SIGNALFD
 	int write_fd;
 #endif
 };
 
-#ifndef __linux__
+#ifndef HAVE_SIGNALFD
 #define MAX_SIGNALFD 32
 struct lsignalfd signalfds[MAX_SIGNALFD];
 static int signalfd_num = 0;
@@ -400,7 +404,7 @@
 	sigemptyset(&sfd->mask);
 	sigaddset(&sfd->mask, sig);
 
-#ifdef __linux__
+#ifdef HAVE_SIGNALFD
 	if (sigprocmask(SIG_BLOCK, &sfd->mask, NULL) != 0) {
 		lua_pushnil(L);
 		return 1;
@@ -455,7 +459,7 @@
 
 static int l_signalfd_read(lua_State *L) {
 	struct lsignalfd *sfd = luaL_checkudata(L, 1, "signalfd");
-#ifdef __linux__
+#ifdef HAVE_SIGNALFD
 	struct signalfd_siginfo siginfo;
 
 	if(read(sfd->fd, &siginfo, sizeof(siginfo)) < 0) {
@@ -487,7 +491,7 @@
 		return 1;
 	}
 
-#ifndef __linux__
+#ifndef HAVE_SIGNALFD
 
 	if(close(sfd->write_fd) != 0) {
 		lua_pushboolean(L, 0);