fix a bugs in guarded_ptr and exempt_ptr
[libcds.git] / cds / urcu / exempt_ptr.h
index e86103a145db4acc28cd5a672181378cd0425045..0a7ba1f55262b5146e13f14a43594131319b96fa 100644 (file)
@@ -242,8 +242,8 @@ namespace cds { namespace urcu {
         /// Disposes the pointer. Should be called only outside of RCU critical section
         void release()
         {
-            assert( !rcu::is_locked() );
             if ( !empty() ) {
+                assert( !rcu::is_locked() );
                 rcu::template retire_ptr<disposer>( m_pNode );
                 m_pNode = nullptr;
             }