Skip to content
Snippets Groups Projects
Commit abaa4766 authored by Philippe Canal's avatar Philippe Canal
Browse files

Make TBufferMerger::GetQueueSize thread safe.

This can now be safely use to avoid overloading the queue.
parent a43477ff
No related branches found
No related tags found
No related merge requests found
...@@ -114,7 +114,7 @@ private: ...@@ -114,7 +114,7 @@ private:
size_t fBuffered{0}; //< Number of bytes currently buffered size_t fBuffered{0}; //< Number of bytes currently buffered
TFileMerger fMerger{false, false}; //< TFileMerger used to merge all buffers TFileMerger fMerger{false, false}; //< TFileMerger used to merge all buffers
std::mutex fMergeMutex; //< Mutex used to lock fMerger 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::queue<TBufferFile *> fQueue; //< Queue to which data is pushed and merged
std::vector<std::weak_ptr<TBufferMergerFile>> fAttachedFiles; //< Attached files std::vector<std::weak_ptr<TBufferMergerFile>> fAttachedFiles; //< Attached files
}; };
......
...@@ -62,6 +62,7 @@ std::shared_ptr<TBufferMergerFile> TBufferMerger::GetFile() ...@@ -62,6 +62,7 @@ std::shared_ptr<TBufferMergerFile> TBufferMerger::GetFile()
size_t TBufferMerger::GetQueueSize() const size_t TBufferMerger::GetQueueSize() const
{ {
std::lock_guard<std::mutex> lock(fQueueMutex);
return fQueue.size(); return fQueue.size();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment