Convert reload
to a local
This commit is contained in:
10
src/main.cpp
10
src/main.cpp
@ -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([&]() {
|
||||||
|
Reference in New Issue
Block a user