diff --git a/io/io/inc/ROOT/TBufferMerger.hxx b/io/io/inc/ROOT/TBufferMerger.hxx index 27fe36d399e3df2fafa60ad570673bd4aa888176..48592cf00abc92db8d24725a79594707c068c041 100644 --- a/io/io/inc/ROOT/TBufferMerger.hxx +++ b/io/io/inc/ROOT/TBufferMerger.hxx @@ -114,7 +114,7 @@ private: size_t fBuffered{0}; //< Number of bytes currently buffered TFileMerger fMerger{false, false}; //< TFileMerger used to merge all buffers std::mutex fMergeMutex; //< Mutex used to lock fMerger - std::mutex fQueueMutex; //< Mutex used to lock fQueue + mutable std::mutex fQueueMutex; //< Mutex used to lock fQueue std::queue<TBufferFile *> fQueue; //< Queue to which data is pushed and merged std::vector<std::weak_ptr<TBufferMergerFile>> fAttachedFiles; //< Attached files }; diff --git a/io/io/src/TBufferMerger.cxx b/io/io/src/TBufferMerger.cxx index 8d320d5362ee40da9e122da80027445798a230a2..f7b9d5d1099c8eeafd3212c94ff9aea40aad7427 100644 --- a/io/io/src/TBufferMerger.cxx +++ b/io/io/src/TBufferMerger.cxx @@ -62,6 +62,7 @@ std::shared_ptr<TBufferMergerFile> TBufferMerger::GetFile() size_t TBufferMerger::GetQueueSize() const { + std::lock_guard<std::mutex> lock(fQueueMutex); return fQueue.size(); }