diff options
Diffstat (limited to 'src/service/logic.cpp')
-rw-r--r-- | src/service/logic.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/service/logic.cpp b/src/service/logic.cpp index 84a7707..086dbf5 100644 --- a/src/service/logic.cpp +++ b/src/service/logic.cpp @@ -25,17 +25,18 @@ #include <stdexcept> #include <set> -#include "common/log.h" #include <cchecker/sql_query.h> #include <cchecker/UIBackend.h> #include "common/binary-queue.h" +#include "common/log.h" using namespace std; namespace CCHECKER { namespace { + struct PkgmgrinfoEvent { PkgmgrinfoEvent(uid_t _uid, const char *_pkgid) : uid(_uid) @@ -108,6 +109,8 @@ void Logic::clean(void) delete m_sqlquery; + timerStop(); + LogDebug("Cert-checker cleaning finish."); } @@ -575,6 +578,8 @@ void Logic::process_all() break; } else { LogDebug("[thread] Check again : " << m_buffer.size()); + // Timer running periodically + timerStart(3600); } } else if (!get_online()) { LogDebug("[thread] No network. Buffer won't be processed."); @@ -587,6 +592,19 @@ void Logic::process_all() } } +void Logic::job(void) +{ + std::lock_guard<std::mutex> lock(m_mutex_cv); + + if (m_buffer.empty()) { + LogDebug("[timer] Buffer is empty."); + timerStop(); + } else { + LogDebug("[timer] Notify thread - periodic wakeup"); + m_to_process.notify_one(); + } +} + void Logic::process_event(const event_t &event) { LogDebug("Move event from queue to (buffer and db)."); |