From 21287a13557ba375e091a2f99c9e2d9c66dec31c Mon Sep 17 00:00:00 2001 From: xirvik Date: Sat, 19 Sep 2026 02:00:21 +0000 Subject: [PATCH] Make SessionManager::m_active atomic It is written under m_mutex but read under m_pending_builds_mutex in one place. --- src/session/session_manager.cc | 1 - src/session/session_manager.h | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/session/session_manager.cc b/src/session/session_manager.cc index 933ad5fa..d268dfc7 100644 --- a/src/session/session_manager.cc +++ b/src/session/session_manager.cc @@ -75,7 +75,6 @@ SessionManager::save_resume_download(core::Download* download) { { std::unique_lock lock(m_pending_builds_mutex); - // TODO: This is under the wrong lock. if (!m_active) throw torrent::internal_error("SessionManager::save_resume_download() called while not active."); diff --git a/src/session/session_manager.h b/src/session/session_manager.h index 5a135552..a3e1f9c1 100644 --- a/src/session/session_manager.h +++ b/src/session/session_manager.h @@ -1,6 +1,7 @@ #ifndef RTORRENT_SESSION_SESSION_MANAGER_H #define RTORRENT_SESSION_SESSION_MANAGER_H +#include #include #include #include @@ -101,7 +102,7 @@ private: align_cacheline std::mutex m_mutex; - bool m_active{}; + std::atomic m_active{}; std::deque m_save_requests; std::atomic m_save_request_counter{};