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