From c356b3f6dec8a9175c0cc388ed5fd44e7fd17824 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Wed, 2 Apr 2025 21:00:27 +0800 Subject: refactor: loggings --- src/renderManager.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src/renderManager.cpp') diff --git a/src/renderManager.cpp b/src/renderManager.cpp index d3720c7..c103285 100644 --- a/src/renderManager.cpp +++ b/src/renderManager.cpp @@ -2,10 +2,22 @@ #include "log.hpp" CRenderManager::CRenderManager() - : screen(ftxui::ScreenInteractive::Fullscreen()) { - log(SYS, "RenderManager: initialized"); + : screen(ftxui::ScreenInteractive::TerminalOutput()) { + if (std::atexit([]() { g_pRenderManager->exitLoop(); })) + log(ERR, "Failed to register SessionManager atexit handler, will fallback to quick_exit after hang"); + log(LOG, "RenderManager: initialized"); }; +CRenderManager::~CRenderManager() { + exitLoop(); + log(SYS, "RenderManager: bye"); +} + +void CRenderManager::exitLoop() { + screen.ExitLoopClosure()(); + screen.Exit(); +} + void CRenderManager::enterLoop() { screen.Loop(renderer); } @@ -13,7 +25,3 @@ void CRenderManager::enterLoop() { void CRenderManager::setRenderer(ftxui::Component component) { renderer = std::move(component); } - -CRenderManager::~CRenderManager() { - screen.Exit(); -} -- cgit v1.2.3