diff options
author | sangwan.kwon <sangwan.kwon@samsung.com> | 2016-05-18 14:21:05 +0900 |
---|---|---|
committer | sangwan.kwon <sangwan.kwon@samsung.com> | 2016-05-18 18:41:41 +0900 |
commit | ee9e1a6a8eb9e4c2fcd49cdcefa9e81820a5e529 (patch) | |
tree | 8ca209dd9fa3aeb34c8c532a8ce10aa024940779 /src/service/logic.cpp | |
parent | d83054179bd49463db2874ec0aa67215c5e22d66 (diff) | |
download | cert-checker-ee9e1a6a8eb9e4c2fcd49cdcefa9e81820a5e529.tar.gz cert-checker-ee9e1a6a8eb9e4c2fcd49cdcefa9e81820a5e529.tar.bz2 cert-checker-ee9e1a6a8eb9e4c2fcd49cdcefa9e81820a5e529.zip |
Add timer for remaining buffer
* Timer's interval is 1 hour.
* It works periodically until buffer is empty.
Change-Id: I719c9addcedeb6f276d969a849c8374813857589
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)."); |