Fixed padding calculation
authorkhizmax <libcds.dev@gmail.com>
Wed, 14 Sep 2016 20:47:52 +0000 (23:47 +0300)
committerkhizmax <libcds.dev@gmail.com>
Wed, 14 Sep 2016 20:47:52 +0000 (23:47 +0300)
cds/opt/options.h

index 7a124aa26921c38197c0ed634fa508b12c913828..ae971a58f6c870a20252e09bca5cfc6e23801c45 100644 (file)
@@ -404,6 +404,26 @@ namespace opt {
         //@endcond
     };
 
+    //@cond
+    template <unsigned Padding>
+    struct actual_padding
+    {
+        enum { value = Padding & ~padding_flags };
+    };
+
+    template <>
+    struct actual_padding<cache_line_padding>
+    {
+        enum { value = cds::c_nCacheLineSize };
+    };
+
+    template <>
+    struct actual_padding<cache_line_padding| padding_tiny_data_only>
+    {
+        enum { value = cds::c_nCacheLineSize };
+    };
+    //@endcond
+
     //@cond
     namespace details {
         enum padding_vs_datasize {