fix bug in exempt_ptr
authorkhizmax <libcds.dev@gmail.com>
Mon, 24 Nov 2014 07:08:17 +0000 (10:08 +0300)
committerkhizmax <libcds.dev@gmail.com>
Mon, 24 Nov 2014 07:08:17 +0000 (10:08 +0300)
cds/urcu/exempt_ptr.h

index 0a7ba1f..9fb2d30 100644 (file)
@@ -144,8 +144,8 @@ namespace cds { namespace urcu {
         /// Disposes the pointer. Should be called only outside of RCU critical section
         void release()
         {
         /// Disposes the pointer. Should be called only outside of RCU critical section
         void release()
         {
-            assert( !rcu::is_locked() );
             if ( !empty() ) {
             if ( !empty() ) {
+                assert( !rcu::is_locked() );
                 rcu::template retire_ptr<disposer>( m_pNode );
                 m_pNode = nullptr;
             }
                 rcu::template retire_ptr<disposer>( m_pNode );
                 m_pNode = nullptr;
             }