aboutsummaryrefslogtreecommitdiffstats
path: root/swaybar/bar.c
diff options
context:
space:
mode:
authorLibravatar Scott Anderson <scott@anderso.nz>2018-04-21 14:39:46 +1200
committerLibravatar Scott Anderson <scott@anderso.nz>2018-04-21 14:39:46 +1200
commit2ebb6073b7eb052984008110e3df4469d2d9c596 (patch)
treef4bc9cbc1bd399da7ab0ee499a2c9285da32de5b /swaybar/bar.c
parentChange remove_event logic (diff)
downloadsway-2ebb6073b7eb052984008110e3df4469d2d9c596.tar.gz
sway-2ebb6073b7eb052984008110e3df4469d2d9c596.tar.zst
sway-2ebb6073b7eb052984008110e3df4469d2d9c596.zip
Remove status command event on error
This prevents very high CPU load when the status command dies, and poll continuously awoken with POLLHUP.
Diffstat (limited to 'swaybar/bar.c')
-rw-r--r--swaybar/bar.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/swaybar/bar.c b/swaybar/bar.c
index d51c4ec7..10a840cc 100644
--- a/swaybar/bar.c
+++ b/swaybar/bar.c
@@ -418,7 +418,11 @@ static void ipc_in(int fd, short mask, void *_bar) {
418 418
419static void status_in(int fd, short mask, void *_bar) { 419static void status_in(int fd, short mask, void *_bar) {
420 struct swaybar *bar = (struct swaybar *)_bar; 420 struct swaybar *bar = (struct swaybar *)_bar;
421 if (status_handle_readable(bar->status)) { 421 if (mask & (POLLHUP | POLLERR)) {
422 status_error(bar->status, "[error reading from status command]");
423 render_all_frames(bar);
424 remove_event(fd);
425 } else if (status_handle_readable(bar->status)) {
422 render_all_frames(bar); 426 render_all_frames(bar);
423 } 427 }
424} 428}