Fix crash when monitor unplugged

`Backlight#devices_` was being destructed before
`Backlight#udev_thread_`. Also check if thread is still running after
`epoll_wait`
This commit is contained in:
Ian Hattendorf
2019-02-25 20:05:44 -07:00
parent 4499a23e51
commit c1295c8fd6
2 changed files with 8 additions and 4 deletions

View File

@ -56,11 +56,12 @@ private:
const std::string preferred_device_;
static constexpr int EPOLL_MAX_EVENTS = 16;
waybar::util::SleeperThread udev_thread_;
std::mutex udev_thread_mutex_;
std::vector<BacklightDev> devices_;
std::optional<BacklightDev> previous_best_;
std::string previous_format_;
std::mutex udev_thread_mutex_;
std::vector<BacklightDev> devices_;
// thread must destruct before shared data
waybar::util::SleeperThread udev_thread_;
};
} // namespace waybar::modules