diff options
author | Scott Anderson <scott@anderso.nz> | 2018-04-21 14:39:46 +1200 |
---|---|---|
committer | Scott Anderson <scott@anderso.nz> | 2018-04-21 14:39:46 +1200 |
commit | 2ebb6073b7eb052984008110e3df4469d2d9c596 (patch) | |
tree | f4bc9cbc1bd399da7ab0ee499a2c9285da32de5b /swaybar/bar.c | |
parent | Change remove_event logic (diff) | |
download | sway-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.c | 6 |
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 | ||
419 | static void status_in(int fd, short mask, void *_bar) { | 419 | static 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 | } |