Merge pull request #4992 from VlkrS/openbsd

fix: USR1/USR2 handling on OpenBSD
This commit is contained in:
Alexis Rouillard
2026-07-03 21:41:12 +02:00
committed by GitHub
4 changed files with 9 additions and 6 deletions
-5
View File
@@ -12,11 +12,6 @@
#include <type_traits> #include <type_traits>
#include <utility> #include <utility>
#ifdef __OpenBSD__
#define SIGRTMIN SIGUSR1 - 1
#define SIGRTMAX SIGUSR1 + 1
#endif
namespace waybar { namespace waybar {
/** /**
+5 -1
View File
@@ -55,9 +55,11 @@ static void catchSignals(waybar::SafeSignal<int>& signal_handler) {
std::signal(SIGINT, writeSignalToPipe); std::signal(SIGINT, writeSignalToPipe);
std::signal(SIGCHLD, writeSignalToPipe); std::signal(SIGCHLD, writeSignalToPipe);
#ifdef SIGRTMIN
for (int sig = SIGRTMIN + 1; sig <= SIGRTMAX; ++sig) { for (int sig = SIGRTMIN + 1; sig <= SIGRTMAX; ++sig) {
std::signal(sig, writeSignalToPipe); std::signal(sig, writeSignalToPipe);
} }
#endif
while (true) { while (true) {
int signum; int signum;
@@ -119,13 +121,15 @@ void handleUserSignal(int signal, bool& reload) {
// If this signal should restart or close the bar, this function will write // If this signal should restart or close the bar, this function will write
// `true` or `false`, respectively, into `reload`. // `true` or `false`, respectively, into `reload`.
static void handleSignalMainThread(int signum, bool& reload) { static void handleSignalMainThread(int signum, bool& reload) {
#ifdef SIGRTMIN
if (signum >= SIGRTMIN + 1 && signum <= SIGRTMAX) { if (signum >= SIGRTMIN + 1 && signum <= SIGRTMAX) {
for (auto& bar : waybar::Client::inst()->bars) { for (auto& bar : waybar::Client::inst()->bars) {
bar->handleSignal(signum); bar->handleSignal(signum);
} }
return; return;
} }
#endif
switch (signum) { switch (signum) {
case SIGUSR1: case SIGUSR1:
handleUserSignal(SIGUSR1, reload); handleUserSignal(SIGUSR1, reload);
+2
View File
@@ -143,9 +143,11 @@ void waybar::modules::Custom::waitingWorker() {
} }
void waybar::modules::Custom::refresh(int sig) { void waybar::modules::Custom::refresh(int sig) {
#ifdef SIGRTMIN
if (config_["signal"].isInt() && sig == SIGRTMIN + config_["signal"].asInt()) { if (config_["signal"].isInt() && sig == SIGRTMIN + config_["signal"].asInt()) {
thread_.wake_up(); thread_.wake_up();
} }
#endif
} }
void waybar::modules::Custom::handleEvent() { void waybar::modules::Custom::handleEvent() {
+2
View File
@@ -46,9 +46,11 @@ void waybar::modules::Image::delayWorker() {
} }
void waybar::modules::Image::refresh(int sig) { void waybar::modules::Image::refresh(int sig) {
#ifdef SIGRTMIN
if (config_["signal"].isInt() && sig == SIGRTMIN + config_["signal"].asInt()) { if (config_["signal"].isInt() && sig == SIGRTMIN + config_["signal"].asInt()) {
thread_.wake_up(); thread_.wake_up();
} }
#endif
} }
auto waybar::modules::Image::update() -> void { auto waybar::modules::Image::update() -> void {