- struct injection
- {
- atomics::atomic<refspin_type> m_RefSpin; ///< Spin-lock for \p m_pLock (bit 0) + reference counter
- lock_type * m_pLock; ///< Node-level lock
-
- injection()
- : m_Access( 0 )
- , m_pLock( nullptr )
- {}
-
- ~injection()
- {
- assert( m_pLock == nullptr );
- assert( m_RefSpin.load( atomics::memory_order_relaxed ) == 0 );
- }
- };
- //@endcond
-
- public:
- mutable injection m_Access; ///< injected data
-
-# ifdef CDS_CXX11_INHERITING_CTOR
- using Node::Node;
-# else
- // Inheriting ctor emulation
- template <typename... Args>
- node_injection( Args&&... args )
- : Node( std::forward<Args>( args )... )