diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2025-04-02 21:00:27 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2025-04-07 16:32:07 +0800 |
| commit | c356b3f6dec8a9175c0cc388ed5fd44e7fd17824 (patch) | |
| tree | 0f2c98ffd24784125f6206149e0cfcc068d52450 /src/renderManager.cpp | |
| parent | 85295cb74abc0cfff1259d426ae05a213b4ac184 (diff) | |
refactor: loggings
Diffstat (limited to 'src/renderManager.cpp')
| -rw-r--r-- | src/renderManager.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
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(); -} |
