diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/sessionManager.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/sessionManager.cpp b/src/sessionManager.cpp index f5b29af..85263f1 100644 --- a/src/sessionManager.cpp +++ b/src/sessionManager.cpp @@ -18,10 +18,11 @@ CSessionManager::CSessionManager() { }; CSessionManager::~CSessionManager() { - for (auto &[thread, session] : m_vSessions) + for (auto &[thread, session] : m_vSessions) { if (thread.joinable()) - thread.join(); - + thread.detach(); + session.reset(); + } log(SYS, "SessionManager: bye"); } @@ -62,6 +63,7 @@ void CSessionManager::removeSession(std::pair<std::jthread, std::shared_ptr<CSes if (it != m_vSessions.end()) { if (it->first.joinable()) it->first.detach(); // .detach the thread since it's removing itself + it->second.reset(); m_vSessions.erase(it); } } |
