Compositor: fix crash on exit

This commit is contained in:
Vaxry 2023-03-09 14:19:41 +00:00
parent 878fe20409
commit ca1c1438e3
2 changed files with 8 additions and 2 deletions

View file

@ -341,8 +341,12 @@ void CCompositor::cleanup() {
g_pXWaylandManager->m_sWLRXWayland = nullptr;
}
wl_display_destroy_clients(g_pCompositor->m_sWLDisplay);
wl_display_terminate(m_sWLDisplay);
m_sWLDisplay = nullptr;
g_pKeybindManager->spawn("sleep 5 && kill -9 " + std::to_string(m_iHyprlandPID)); // this is to prevent that random "freezing"
// the PID should not be reused.
}

View file

@ -73,13 +73,15 @@ int main(int argc, char** argv) {
sd_notify(0, "STOPPING=1");
#endif
wl_display_destroy_clients(g_pCompositor->m_sWLDisplay);
if (g_pCompositor->m_sWLDisplay)
wl_display_destroy_clients(g_pCompositor->m_sWLDisplay);
// kill all clients
for (auto& c : g_pCompositor->m_dProcessPIDsOnShutdown)
kill(c, SIGKILL);
wl_display_destroy(g_pCompositor->m_sWLDisplay);
if (g_pCompositor->m_sWLDisplay)
wl_display_destroy(g_pCompositor->m_sWLDisplay);
return EXIT_SUCCESS;
}