mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-10-04 21:29:21 +00:00
Make SessionManager::m_active atomic
It is written under m_mutex but read under m_pending_builds_mutex in one place.
This commit is contained in:
@@ -75,7 +75,6 @@ SessionManager::save_resume_download(core::Download* download) {
|
|||||||
{
|
{
|
||||||
std::unique_lock<std::mutex> lock(m_pending_builds_mutex);
|
std::unique_lock<std::mutex> lock(m_pending_builds_mutex);
|
||||||
|
|
||||||
// TODO: This is under the wrong lock.
|
|
||||||
if (!m_active)
|
if (!m_active)
|
||||||
throw torrent::internal_error("SessionManager::save_resume_download() called while not active.");
|
throw torrent::internal_error("SessionManager::save_resume_download() called while not active.");
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#ifndef RTORRENT_SESSION_SESSION_MANAGER_H
|
#ifndef RTORRENT_SESSION_SESSION_MANAGER_H
|
||||||
#define RTORRENT_SESSION_SESSION_MANAGER_H
|
#define RTORRENT_SESSION_SESSION_MANAGER_H
|
||||||
|
|
||||||
|
#include <atomic>
|
||||||
#include <condition_variable>
|
#include <condition_variable>
|
||||||
#include <deque>
|
#include <deque>
|
||||||
#include <future>
|
#include <future>
|
||||||
@@ -101,7 +102,7 @@ private:
|
|||||||
|
|
||||||
align_cacheline std::mutex m_mutex;
|
align_cacheline std::mutex m_mutex;
|
||||||
|
|
||||||
bool m_active{};
|
std::atomic<bool> m_active{};
|
||||||
|
|
||||||
std::deque<SaveRequest> m_save_requests;
|
std::deque<SaveRequest> m_save_requests;
|
||||||
std::atomic<size_t> m_save_request_counter{};
|
std::atomic<size_t> m_save_request_counter{};
|
||||||
|
|||||||
Reference in New Issue
Block a user