watchdog: remove watchdog
it has been unused for a while now
This commit is contained in:
parent
ea852965ff
commit
4f991610d0
5 changed files with 0 additions and 106 deletions
|
|
@ -1,58 +0,0 @@
|
|||
#include "Watchdog.hpp"
|
||||
#include <csignal>
|
||||
#include "config/ConfigManager.hpp"
|
||||
#include "../config/ConfigValue.hpp"
|
||||
|
||||
CWatchdog::~CWatchdog() {
|
||||
m_bExitThread = true;
|
||||
m_bNotified = true;
|
||||
m_cvWatchdogCondition.notify_all();
|
||||
|
||||
if (m_pWatchdog && m_pWatchdog->joinable())
|
||||
m_pWatchdog->join();
|
||||
}
|
||||
|
||||
CWatchdog::CWatchdog() : m_iMainThreadPID(pthread_self()) {
|
||||
|
||||
m_pWatchdog = makeUnique<std::thread>([this] {
|
||||
static auto PTIMEOUT = CConfigValue<Hyprlang::INT>("debug:watchdog_timeout");
|
||||
|
||||
m_bWatchdogInitialized = true;
|
||||
while (!m_bExitThread) {
|
||||
std::unique_lock<std::mutex> lk(m_mWatchdogMutex);
|
||||
|
||||
if (!m_bWillWatch)
|
||||
m_cvWatchdogCondition.wait(lk, [this] { return m_bNotified || m_bExitThread; });
|
||||
else if (!m_cvWatchdogCondition.wait_for(lk, std::chrono::milliseconds((int)(*PTIMEOUT * 1000.0)), [this] { return m_bNotified || m_bExitThread; }))
|
||||
pthread_kill(m_iMainThreadPID, SIGUSR1);
|
||||
|
||||
if (m_bExitThread)
|
||||
break;
|
||||
|
||||
m_bWatching = false;
|
||||
m_bNotified = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void CWatchdog::startWatching() {
|
||||
static auto PTIMEOUT = CConfigValue<Hyprlang::INT>("debug:watchdog_timeout");
|
||||
|
||||
if (*PTIMEOUT == 0)
|
||||
return;
|
||||
|
||||
m_tTriggered = std::chrono::high_resolution_clock::now();
|
||||
m_bWillWatch = true;
|
||||
m_bWatching = true;
|
||||
|
||||
m_bNotified = true;
|
||||
m_cvWatchdogCondition.notify_all();
|
||||
}
|
||||
|
||||
void CWatchdog::endWatching() {
|
||||
m_bWatching = false;
|
||||
m_bWillWatch = false;
|
||||
|
||||
m_bNotified = true;
|
||||
m_cvWatchdogCondition.notify_all();
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#include "memory/Memory.hpp"
|
||||
#include <chrono>
|
||||
#include <thread>
|
||||
#include <condition_variable>
|
||||
|
||||
class CWatchdog {
|
||||
public:
|
||||
// must be called from the main thread
|
||||
CWatchdog();
|
||||
~CWatchdog();
|
||||
|
||||
void startWatching();
|
||||
void endWatching();
|
||||
|
||||
std::atomic<bool> m_bWatchdogInitialized{false};
|
||||
|
||||
private:
|
||||
std::chrono::high_resolution_clock::time_point m_tTriggered;
|
||||
|
||||
pthread_t m_iMainThreadPID = 0;
|
||||
|
||||
std::atomic<bool> m_bWatching = false;
|
||||
std::atomic<bool> m_bWillWatch = false;
|
||||
|
||||
UP<std::thread> m_pWatchdog;
|
||||
std::mutex m_mWatchdogMutex;
|
||||
std::atomic<bool> m_bNotified = false;
|
||||
std::atomic<bool> m_bExitThread = false;
|
||||
std::condition_variable m_cvWatchdogCondition;
|
||||
};
|
||||
|
||||
inline UP<CWatchdog> g_pWatchdog;
|
||||
Loading…
Add table
Add a link
Reference in a new issue