diff --git a/src/helpers/Watchdog.cpp b/src/helpers/Watchdog.cpp index afb8a946..b9f654da 100644 --- a/src/helpers/Watchdog.cpp +++ b/src/helpers/Watchdog.cpp @@ -7,7 +7,9 @@ CWatchdog::~CWatchdog() { m_bExitThread = true; m_bNotified = true; m_cvWatchdogCondition.notify_all(); - m_pWatchdog.reset(); + + if (m_pWatchdog && m_pWatchdog->joinable()) + m_pWatchdog->join(); } CWatchdog::CWatchdog() { @@ -33,8 +35,6 @@ CWatchdog::CWatchdog() { m_bNotified = false; } }); - - m_pWatchdog->detach(); } void CWatchdog::startWatching() { diff --git a/src/render/Renderbuffer.cpp b/src/render/Renderbuffer.cpp index 694485c2..b55a921b 100644 --- a/src/render/Renderbuffer.cpp +++ b/src/render/Renderbuffer.cpp @@ -6,7 +6,7 @@ #include CRenderbuffer::~CRenderbuffer() { - if (!g_pCompositor) + if (!g_pCompositor || g_pCompositor->m_bIsShuttingDown || !g_pHyprRenderer) return; g_pHyprRenderer->makeEGLCurrent(); diff --git a/src/render/Texture.cpp b/src/render/Texture.cpp index 5560db97..46c501a0 100644 --- a/src/render/Texture.cpp +++ b/src/render/Texture.cpp @@ -9,7 +9,7 @@ CTexture::CTexture() { } CTexture::~CTexture() { - if (m_bNonOwning) + if (m_bNonOwning || !g_pCompositor || g_pCompositor->m_bIsShuttingDown || !g_pHyprRenderer) return; g_pHyprRenderer->makeEGLCurrent();