diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2025-03-09 14:16:46 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2025-03-20 23:44:57 +0800 |
| commit | 8ab26f85e474dcdbbb2c2fb94b6a087f71952bf8 (patch) | |
| tree | 752c1129db2d363dfd96dd15d27c34f2e126a4e3 /src/chatServer.cpp | |
| parent | 938ca89e48c2a01d6aa072f01545fa2da585486c (diff) | |
feat: broadcast message from one client to the rest, making chat actually possible
fix(chatServer, CSessionManager): .join sessionThread properly
cleanup(server): unused header
Diffstat (limited to 'src/chatServer.cpp')
| -rw-r--r-- | src/chatServer.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/chatServer.cpp b/src/chatServer.cpp index 06f2021..2f6ddf5 100644 --- a/src/chatServer.cpp +++ b/src/chatServer.cpp @@ -1,6 +1,7 @@ #include "chatServer.hpp" #include "server.hpp" #include "sessionManager.hpp" +#include "chatManager.hpp" CChatServer::CChatServer() = default; @@ -9,22 +10,26 @@ CChatServer::~CChatServer() { } void CChatServer::cleanup() { - g_pServer.reset(); + g_pChatManager.reset(); g_pSessionManager.reset(); + g_pServer.reset(); + + if (m_sessionThread.joinable()) + m_sessionThread.join(); } void CChatServer::initManagers() { g_pServer = std::make_unique<CServer>(8080); g_pSessionManager = std::make_shared<CSessionManager>(); + g_pChatManager = std::make_unique<CChatManager>(); } - void CChatServer::start() { initManagers(); // will await while waiting for accept() to return a new client - std::jthread sessionThread = std::jthread(&CSessionManager::enterLoop, g_pSessionManager); - sessionThread.detach(); + m_sessionThread = std::jthread(&CSessionManager::enterLoop, g_pSessionManager); + m_sessionThread.detach(); while (true) { } |
