Convert reload to a local

This commit is contained in:
literallyvoid
2025-04-12 17:48:16 -07:00
parent 97591c825a
commit dbd3ffd732

View File

@ -12,7 +12,6 @@
std::mutex reap_mtx; std::mutex reap_mtx;
std::list<pid_t> reap; std::list<pid_t> reap;
volatile bool reload;
static int signal_pipe_write_fd; static int signal_pipe_write_fd;
@ -73,7 +72,10 @@ static void catchSignals(waybar::SafeSignal<int> &signal_handler) {
} }
// Must be called on the main thread. // Must be called on the main thread.
static void handleSignalMainThread(int signum) { //
// If this signal should restart or close the bar, this function will write
// `true` or `false`, respectively, into `reload`.
static void handleSignalMainThread(int signum, bool &reload) {
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);
@ -122,9 +124,11 @@ int main(int argc, char* argv[]) {
try { try {
auto* client = waybar::Client::inst(); auto* client = waybar::Client::inst();
bool reload;
waybar::SafeSignal<int> posix_signal_received; waybar::SafeSignal<int> posix_signal_received;
posix_signal_received.connect([&](int signum) { posix_signal_received.connect([&](int signum) {
handleSignalMainThread(signum); handleSignalMainThread(signum, reload);
}); });
std::thread signal_thread([&]() { std::thread signal_thread([&]() {