summaryrefslogtreecommitdiff
path: root/src/service/logic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/service/logic.cpp')
-rw-r--r--src/service/logic.cpp20
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).");