From b6a21b5b3bcceea59c871101210cc44eaa7da913 Mon Sep 17 00:00:00 2001
From: Philippe Canal <pcanal@fnal.gov>
Date: Thu, 4 Feb 2021 21:31:22 -0600
Subject: [PATCH] Add TBufferMerger::GetBuffered.

This can be used to monitor the queue size in bytes rather than number of files
---
 io/io/inc/ROOT/TBufferMerger.hxx | 3 +++
 io/io/src/TBufferMerger.cxx      | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/io/io/inc/ROOT/TBufferMerger.hxx b/io/io/inc/ROOT/TBufferMerger.hxx
index 48592cf00ab..c2e6822578d 100644
--- a/io/io/inc/ROOT/TBufferMerger.hxx
+++ b/io/io/inc/ROOT/TBufferMerger.hxx
@@ -70,6 +70,9 @@ public:
    /** Returns the number of buffers currently in the queue. */
    size_t GetQueueSize() const;
 
+   /** Returns the number of bytes currently buffered (i.e. in the queue). */
+   size_t GetBuffered() const;
+
    /** Returns the current value of the auto save setting in bytes (default = 0). */
    size_t GetAutoSave() const;
 
diff --git a/io/io/src/TBufferMerger.cxx b/io/io/src/TBufferMerger.cxx
index f7b9d5d1099..c09ceae192e 100644
--- a/io/io/src/TBufferMerger.cxx
+++ b/io/io/src/TBufferMerger.cxx
@@ -66,6 +66,12 @@ size_t TBufferMerger::GetQueueSize() const
    return fQueue.size();
 }
 
+size_t TBufferMerger::GetBuffered() const
+{
+   std::lock_guard<std::mutex> lock(fQueueMutex);
+   return fBuffered;
+}
+
 void TBufferMerger::Push(TBufferFile *buffer)
 {
    {
-- 
GitLab