mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-05-19 08:30:22 -07:00
watchdog: remove watchdog
it has been unused for a while now
This commit is contained in:
parent
ea852965ff
commit
4f991610d0
@ -59,7 +59,6 @@
|
|||||||
#include "managers/ProtocolManager.hpp"
|
#include "managers/ProtocolManager.hpp"
|
||||||
#include "managers/LayoutManager.hpp"
|
#include "managers/LayoutManager.hpp"
|
||||||
#include "plugins/PluginSystem.hpp"
|
#include "plugins/PluginSystem.hpp"
|
||||||
#include "helpers/Watchdog.hpp"
|
|
||||||
#include "hyprerror/HyprError.hpp"
|
#include "hyprerror/HyprError.hpp"
|
||||||
#include "debug/HyprNotificationOverlay.hpp"
|
#include "debug/HyprNotificationOverlay.hpp"
|
||||||
#include "debug/HyprDebugOverlay.hpp"
|
#include "debug/HyprDebugOverlay.hpp"
|
||||||
@ -588,7 +587,6 @@ void CCompositor::cleanup() {
|
|||||||
g_pConfigManager.reset();
|
g_pConfigManager.reset();
|
||||||
g_pKeybindManager.reset();
|
g_pKeybindManager.reset();
|
||||||
g_pHookSystem.reset();
|
g_pHookSystem.reset();
|
||||||
g_pWatchdog.reset();
|
|
||||||
g_pXWaylandManager.reset();
|
g_pXWaylandManager.reset();
|
||||||
g_pPointerManager.reset();
|
g_pPointerManager.reset();
|
||||||
g_pSeatManager.reset();
|
g_pSeatManager.reset();
|
||||||
@ -642,11 +640,6 @@ void CCompositor::initManagers(eManagersInitStage stage) {
|
|||||||
g_pTokenManager = makeUnique<CTokenManager>();
|
g_pTokenManager = makeUnique<CTokenManager>();
|
||||||
|
|
||||||
g_pConfigManager->init();
|
g_pConfigManager->init();
|
||||||
g_pWatchdog = makeUnique<CWatchdog>(); // requires config
|
|
||||||
// wait for watchdog to initialize to not hit data races in reading config values.
|
|
||||||
while (!g_pWatchdog->m_bWatchdogInitialized) {
|
|
||||||
std::this_thread::yield();
|
|
||||||
}
|
|
||||||
|
|
||||||
Debug::log(LOG, "Creating the PointerManager!");
|
Debug::log(LOG, "Creating the PointerManager!");
|
||||||
g_pPointerManager = makeUnique<CPointerManager>();
|
g_pPointerManager = makeUnique<CPointerManager>();
|
||||||
|
@ -1598,12 +1598,6 @@ inline static const std::vector<SConfigOptionDescription> CONFIG_OPTIONS = {
|
|||||||
.type = CONFIG_OPTION_BOOL,
|
.type = CONFIG_OPTION_BOOL,
|
||||||
.data = SConfigOptionDescription::SBoolData{false},
|
.data = SConfigOptionDescription::SBoolData{false},
|
||||||
},
|
},
|
||||||
SConfigOptionDescription{
|
|
||||||
.value = "debug:watchdog_timeout",
|
|
||||||
.description = "sets the timeout in seconds for watchdog to abort processing of a signal of the main thread. Set to 0 to disable.",
|
|
||||||
.type = CONFIG_OPTION_INT,
|
|
||||||
.data = SConfigOptionDescription::SRangeData{5, 0, 20},
|
|
||||||
},
|
|
||||||
SConfigOptionDescription{
|
SConfigOptionDescription{
|
||||||
.value = "debug:disable_scale_checks",
|
.value = "debug:disable_scale_checks",
|
||||||
.description = "disables verification of the scale factors. Will result in pixel alignment and rounding errors.",
|
.description = "disables verification of the scale factors. Will result in pixel alignment and rounding errors.",
|
||||||
|
@ -515,7 +515,6 @@ CConfigManager::CConfigManager() {
|
|||||||
registerConfigVar("debug:suppress_errors", Hyprlang::INT{0});
|
registerConfigVar("debug:suppress_errors", Hyprlang::INT{0});
|
||||||
registerConfigVar("debug:error_limit", Hyprlang::INT{5});
|
registerConfigVar("debug:error_limit", Hyprlang::INT{5});
|
||||||
registerConfigVar("debug:error_position", Hyprlang::INT{0});
|
registerConfigVar("debug:error_position", Hyprlang::INT{0});
|
||||||
registerConfigVar("debug:watchdog_timeout", Hyprlang::INT{5});
|
|
||||||
registerConfigVar("debug:disable_scale_checks", Hyprlang::INT{0});
|
registerConfigVar("debug:disable_scale_checks", Hyprlang::INT{0});
|
||||||
registerConfigVar("debug:colored_stdout_logs", Hyprlang::INT{1});
|
registerConfigVar("debug:colored_stdout_logs", Hyprlang::INT{1});
|
||||||
registerConfigVar("debug:full_cm_proto", Hyprlang::INT{0});
|
registerConfigVar("debug:full_cm_proto", Hyprlang::INT{0});
|
||||||
|
@ -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…
x
Reference in New Issue
Block a user