Changed: use padding option instead of alignment one
[libcds.git] / cds / intrusive / details / single_link_struct.h
index 2b02e797dd2f16a5bd1b1732a117867d6374bbac..b235b593e7775c798ec6cda434c20aa1f9d1cdd9 100644 (file)
@@ -1,11 +1,11 @@
 //$$CDS-header$$
 
-#ifndef __CDS_INTRUSIVE_DETAILS_SINGLE_LINK_STRUCT_H
-#define __CDS_INTRUSIVE_DETAILS_SINGLE_LINK_STRUCT_H
+#ifndef CDSLIB_INTRUSIVE_DETAILS_SINGLE_LINK_STRUCT_H
+#define CDSLIB_INTRUSIVE_DETAILS_SINGLE_LINK_STRUCT_H
 
 #include <cds/intrusive/details/base.h>
 #include <cds/gc/default_gc.h>
-#include <cds/cxx11_atomic.h>
+#include <cds/algo/atomic.h>
 
 namespace cds { namespace intrusive {
 
@@ -36,9 +36,10 @@ namespace cds { namespace intrusive {
 
             atomic_node_ptr m_pNext ; ///< pointer to the next node in the container
 
-            node()
-                : m_pNext( nullptr )
-            {}
+            node() CDS_NOEXCEPT
+            {
+                m_pNext.store( nullptr, atomics::memory_order_release );
+            }
         };
 
         //@cond
@@ -118,6 +119,7 @@ namespace cds { namespace intrusive {
             static void is_empty( const node_type * pNode )
             {
                 assert( pNode->m_pNext.load( atomics::memory_order_relaxed ) == nullptr );
+                CDS_UNUSED( pNode );
             }
         };
 
@@ -163,4 +165,4 @@ namespace cds { namespace intrusive {
 
 
 
-#endif // #ifndef __CDS_INTRUSIVE_DETAILS_SINGLE_LINK_STRUCT_H
+#endif // #ifndef CDSLIB_INTRUSIVE_DETAILS_SINGLE_LINK_STRUCT_H