fix(battery): Ignore the fake inotify event
Assume fake event if polling flag is set. Fixes jaagr/lemonbuddy#140
This commit is contained in:
parent
b9e4ee9b92
commit
52c08675e6
@ -62,6 +62,7 @@ namespace modules {
|
|||||||
chrono::system_clock::time_point m_lastpoll;
|
chrono::system_clock::time_point m_lastpoll;
|
||||||
|
|
||||||
stateflag m_notified{false};
|
stateflag m_notified{false};
|
||||||
|
stateflag m_polling{false};
|
||||||
|
|
||||||
int m_fullat = 100;
|
int m_fullat = 100;
|
||||||
};
|
};
|
||||||
|
@ -80,8 +80,10 @@ namespace modules {
|
|||||||
// doesn't report inotify events for files on sysfs
|
// doesn't report inotify events for files on sysfs
|
||||||
if (m_interval.count() > 0 && !m_notified.load(std::memory_order_relaxed)) {
|
if (m_interval.count() > 0 && !m_notified.load(std::memory_order_relaxed)) {
|
||||||
auto now = chrono::system_clock::now();
|
auto now = chrono::system_clock::now();
|
||||||
|
|
||||||
if (now - m_lastpoll > m_interval) {
|
if (now - m_lastpoll > m_interval) {
|
||||||
m_log.info("%s: Polling values (inotify fallback)", name());
|
m_log.info("%s: Polling values (inotify fallback)", name());
|
||||||
|
m_polling.store(true, std::memory_order_relaxed);
|
||||||
m_lastpoll = now;
|
m_lastpoll = now;
|
||||||
on_event(nullptr);
|
on_event(nullptr);
|
||||||
broadcast();
|
broadcast();
|
||||||
@ -95,9 +97,14 @@ namespace modules {
|
|||||||
if (event != nullptr) {
|
if (event != nullptr) {
|
||||||
m_log.trace("%s: %s", name(), event->filename);
|
m_log.trace("%s: %s", name(), event->filename);
|
||||||
|
|
||||||
if (!m_notified.load(std::memory_order_relaxed)) {
|
if (m_polling.load(std::memory_order_relaxed)) {
|
||||||
|
m_log.info("%s: Inotify event reported, assuming fake...", name());
|
||||||
|
m_polling.store(false, std::memory_order_relaxed);
|
||||||
|
} else if (!m_notified.load(std::memory_order_relaxed)) {
|
||||||
m_log.info("%s: Inotify event reported, disable polling fallback...", name());
|
m_log.info("%s: Inotify event reported, disable polling fallback...", name());
|
||||||
m_notified.store(true, std::memory_order_relaxed);
|
m_notified.store(true, std::memory_order_relaxed);
|
||||||
|
} else {
|
||||||
|
m_log.info("%s: Inotify event reported", name());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user