CaloRecGPU::Helpers::separate_thread_holder< T > Node1 CaloRecGPU::Helpers ::separate_thread_holder< T > + get_one() + get_for_thread() + release_one() + resize() + operate_on_all() + held_size() + available_size() + filled_size() Node2 std::mutex Node2->Node1 -m_mutex Node3 std::vector< typename std::thread::id > + elements Node3->Node1 -m_thread_equivs Node4 std::vector< std::unique _ptr< T > > + elements Node4->Node1 -m_held