Fix bugs in libcds atomic implementation
authorkhizmax <libcds.dev@gmail.com>
Thu, 25 Sep 2014 19:17:13 +0000 (23:17 +0400)
committerkhizmax <libcds.dev@gmail.com>
Thu, 25 Sep 2014 19:17:13 +0000 (23:17 +0400)
cds/compiler/cxx11_atomic.h
cds/compiler/gcc/x86/cxx11_atomic32.h
projects/Win/vc12/cds.vcxproj
projects/Win/vc12/cds.vcxproj.filters

index 726a241abfb7217e0f52e328e23bebc07a0b6bba..120e9430766d6c8008959e7915b060a1c082f26c 100644 (file)
@@ -71,22 +71,22 @@ namespace cds { namespace cxx11_atomic {
         template <>
         struct primary_type<1>
         {
-            typedef cds::uint8_t type;
+            typedef std::uint8_t type;
         };
         template <>
         struct primary_type<2>
         {
-            typedef cds::uint16_t type;
+            typedef std::uint16_t type;
         };
         template <>
         struct primary_type<4>
         {
-            typedef cds::uint32_t type;
+            typedef std::uint32_t type;
         };
         template <>
         struct primary_type<8>
         {
-            typedef cds::uint64_t type;
+            typedef std::uint64_t type;
         };
 
         template <typename T, typename Primary>
@@ -1802,28 +1802,28 @@ namespace cds { namespace cxx11_atomic {
     typedef atomic<wchar_t>         atomic_wchar_t;
 
 
-    typedef atomic<cds::int_least8_t>    atomic_int_least8_t;
-    typedef atomic<cds::uint_least8_t>   atomic_uint_least8_t;
-    typedef atomic<cds::int_least16_t>   atomic_int_least16_t;
-    typedef atomic<cds::uint_least16_t>  atomic_uint_least16_t;
-    typedef atomic<cds::int_least32_t>   atomic_int_least32_t;
-    typedef atomic<cds::uint_least32_t>  atomic_uint_least32_t;
-    typedef atomic<cds::int_least64_t>   atomic_int_least64_t;
-    typedef atomic<cds::uint_least64_t>  atomic_uint_least64_t;
-    typedef atomic<cds::int_fast8_t>     atomic_int_fast8_t;
-    typedef atomic<cds::uint_fast8_t>    atomic_uint_fast8_t;
-    typedef atomic<cds::int_fast16_t>    atomic_int_fast16_t;
-    typedef atomic<cds::uint_fast16_t>   atomic_uint_fast16_t;
-    typedef atomic<cds::int_fast32_t>    atomic_int_fast32_t;
-    typedef atomic<cds::uint_fast32_t>   atomic_uint_fast32_t;
-    typedef atomic<cds::int_fast64_t>    atomic_int_fast64_t;
-    typedef atomic<cds::uint_fast64_t>   atomic_uint_fast64_t;
+    typedef atomic<std::int_least8_t>    atomic_int_least8_t;
+    typedef atomic<std::uint_least8_t>   atomic_uint_least8_t;
+    typedef atomic<std::int_least16_t>   atomic_int_least16_t;
+    typedef atomic<std::uint_least16_t>  atomic_uint_least16_t;
+    typedef atomic<std::int_least32_t>   atomic_int_least32_t;
+    typedef atomic<std::uint_least32_t>  atomic_uint_least32_t;
+    typedef atomic<std::int_least64_t>   atomic_int_least64_t;
+    typedef atomic<std::uint_least64_t>  atomic_uint_least64_t;
+    typedef atomic<std::int_fast8_t>     atomic_int_fast8_t;
+    typedef atomic<std::uint_fast8_t>    atomic_uint_fast8_t;
+    typedef atomic<std::int_fast16_t>    atomic_int_fast16_t;
+    typedef atomic<std::uint_fast16_t>   atomic_uint_fast16_t;
+    typedef atomic<std::int_fast32_t>    atomic_int_fast32_t;
+    typedef atomic<std::uint_fast32_t>   atomic_uint_fast32_t;
+    typedef atomic<std::int_fast64_t>    atomic_int_fast64_t;
+    typedef atomic<std::uint_fast64_t>   atomic_uint_fast64_t;
     typedef atomic<intptr_t>             atomic_intptr_t;
     typedef atomic<uintptr_t>            atomic_uintptr_t;
     typedef atomic<size_t>               atomic_size_t;
     typedef atomic<ptrdiff_t>            atomic_ptrdiff_t;
-    typedef atomic<cds::intmax_t>        atomic_intmax_t;
-    typedef atomic<cds::uintmax_t>       atomic_uintmax_t;
+    typedef atomic<std::intmax_t>        atomic_intmax_t;
+    typedef atomic<std::uintmax_t>       atomic_uintmax_t;
 
     template <class T>
     static inline bool atomic_is_lock_free(const volatile atomic<T> * p) CDS_NOEXCEPT
index c945a988883a420f232b8765b3f2dabd7f387902..be7c3c2067841e39d24b9961205ff29f3e85e7ab 100644 (file)
@@ -7,7 +7,7 @@
 #include <cds/details/is_aligned.h>
 
 //@cond
-namespace cds { namespace cxx11_atomics {
+namespace cds { namespace cxx11_atomic {
     namespace platform { CDS_CXX11_INLINE_NAMESPACE namespace gcc { CDS_CXX11_INLINE_NAMESPACE namespace x86 {
 
         static inline void fence_before( memory_order order ) CDS_NOEXCEPT
@@ -468,7 +468,7 @@ namespace cds { namespace cxx11_atomics {
         }
 
     }}} // namespace platform::gcc::x86
-}}  // namespace cds::cxx11_atomics
+}}  // namespace cds::cxx11_atomic
 //@endcond
 
 #endif // #ifndef __CDS_COMPILER_GCC_X86_CXX11_ATOMIC32_H
index 6721fb0703092d68921b6909fdcb9af0d4dfb687..e417beaa8b70041507f8101feb79e170f1eb9f89 100644 (file)
     <ClInclude Include="..\..\..\cds\compiler\gcc\ia64\cxx11_atomic.h" />\r
     <ClInclude Include="..\..\..\cds\compiler\gcc\sparc\cxx11_atomic.h" />\r
     <ClInclude Include="..\..\..\cds\compiler\gcc\x86\cxx11_atomic.h" />\r
+    <ClInclude Include="..\..\..\cds\compiler\gcc\x86\cxx11_atomic32.h" />\r
     <ClInclude Include="..\..\..\cds\compiler\icl\compiler_barriers.h" />\r
     <ClInclude Include="..\..\..\cds\compiler\icl\defs.h" />\r
     <ClInclude Include="..\..\..\cds\compiler\vc\amd64\cxx11_atomic.h" />\r
index 2d319256aff76079638c5cec56ec979cd9dc1626..ed80d9e2b3e3f45c09f6b095435f63295c5886b9 100644 (file)
     <ClInclude Include="..\..\..\cds\container\details\make_split_list_set.h">\r
       <Filter>Header Files\cds\container\details</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="..\..\..\cds\compiler\gcc\x86\cxx11_atomic32.h">\r
+      <Filter>Header Files\cds\compiler\gcc\x86</Filter>\r
+    </ClInclude>\r
   </ItemGroup>\r
 </Project>
\ No newline at end of file