#include <glib.h>
+#include <mutex>
+
#include "aul/app_request.h"
#include "aul/aul_api.h"
#include "aul/aul_util.h"
WatchdogContext() = default;
~WatchdogContext() {
+ std::lock_guard<std::recursive_mutex> lock(GetMutex());
Stop();
if (enabled_) {
}
void Enable() {
+ std::lock_guard<std::recursive_mutex> lock(GetMutex());
if (enabled_) {
_W("Already enabled");
return;
}
void Disable() {
+ std::lock_guard<std::recursive_mutex> lock(GetMutex());
if (!enabled_)
THROW(AUL_R_ERROR);
}
void Kick() {
+ std::lock_guard<std::recursive_mutex> lock(GetMutex());
if (!enabled_)
THROW(AUL_R_ERROR);
}
void Start(unsigned int interval) {
+ std::lock_guard<std::recursive_mutex> lock(GetMutex());
_D("Interval: %u", interval);
if (interval == 0) {
_E("Invalid parameter");
}
void Stop() {
+ std::lock_guard<std::recursive_mutex> lock(GetMutex());
if (timer_ == 0)
return;
}
bool IsEnabled() const {
+ std::lock_guard<std::recursive_mutex> lock(GetMutex());
return enabled_;
}
_D("Ping");
}
+ std::recursive_mutex& GetMutex() const { return mutex_; }
+
private:
bool enabled_ = false;
unsigned int interval_ = 0;
guint timer_ = 0;
+ mutable std::recursive_mutex mutex_;
};
WatchdogContext context;