From 5608c498533e61eb847023b3fc20846c23b1389a Mon Sep 17 00:00:00 2001
From: scott snyder <snyder@bnl.gov>
Date: Thu, 20 Apr 2017 14:20:47 +0200
Subject: [PATCH] AthContainers: MT fix for PackedContainerStreamer.

PackedContainerStreamer was missing an implementation of the Generate() method.
This doesn't matter in single-threaded mode, but leads to I/O crashes
in MT mode.
---
 .../Root/dict/PackedContainerStreamer.cxx        | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/Control/AthContainers/Root/dict/PackedContainerStreamer.cxx b/Control/AthContainers/Root/dict/PackedContainerStreamer.cxx
index f1480f0046cb..4662430b5991 100644
--- a/Control/AthContainers/Root/dict/PackedContainerStreamer.cxx
+++ b/Control/AthContainers/Root/dict/PackedContainerStreamer.cxx
@@ -90,6 +90,12 @@ public:
   virtual void operator()(TBuffer &b, void *objp);
 
 
+  /**
+   * @brief Clone operation, required for MT.
+   */
+  virtual TClassStreamer* Generate() const override;
+
+
 private:
   /// Name of the class we read/write (for error messages).
   std::string m_className;
@@ -152,6 +158,16 @@ void PackedContainerStreamer<T>::operator() ( TBuffer& b, void* objp ) {
 }
 
 
+/**
+ * @brief Clone operation, required for MT.
+ */
+template <class T>
+TClassStreamer* PackedContainerStreamer<T>::Generate() const
+{
+  return new PackedContainerStreamer<T> (*this);
+}
+
+
 template <class T>
 struct InstallPackedContainerStreamer;
 
-- 
GitLab