diff options
| author | Drew DeVault <sir@cmpwn.com> | 2019-02-15 16:25:28 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-15 16:25:28 +0100 |
| commit | cdbf8e8b2540768cc4c82176f6510d8e6ae8f037 (patch) | |
| tree | e98b9ffe575791ab9fb48e52e5339c55bff2005a /swaybar/bar.c | |
| parent | 96de2b539c00992003664d0de225cc28c2fb9e54 (diff) | |
| parent | d3c527220a445c1f88b892c0e77e801d326541b7 (diff) | |
Merge pull request #3692 from ianyfan/swaybar
Fix crash and memory leak on bar termination
Diffstat (limited to 'swaybar/bar.c')
| -rw-r--r-- | swaybar/bar.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/swaybar/bar.c b/swaybar/bar.c index a1f7bfdb..db1c1222 100644 --- a/swaybar/bar.c +++ b/swaybar/bar.c @@ -4,6 +4,7 @@ #include <fcntl.h> #include <poll.h> #include <signal.h> +#include <stdbool.h> #include <stdlib.h> #include <string.h> #include <sys/wait.h> @@ -403,8 +404,7 @@ bool bar_setup(struct swaybar *bar, const char *socket_path) { static void display_in(int fd, short mask, void *data) { struct swaybar *bar = data; if (wl_display_dispatch(bar->display) == -1) { - bar_teardown(bar); - exit(0); + bar->running = false; } } @@ -439,7 +439,7 @@ void bar_run(struct swaybar *bar) { loop_add_fd(bar->eventloop, bar->tray->fd, POLLIN, tray_in, bar->tray->bus); } #endif - while (1) { + while (bar->running) { errno = 0; if (wl_display_flush(bar->display) == -1 && errno != EAGAIN) { break; |
