Fix GC refactoring bugs
authorkhizmax <libcds.dev@gmail.com>
Sun, 16 Nov 2014 06:34:21 +0000 (09:34 +0300)
committerkhizmax <libcds.dev@gmail.com>
Sun, 16 Nov 2014 06:34:21 +0000 (09:34 +0300)
cds/gc/impl/dhp_decl.h
cds/gc/impl/hp_decl.h
cds/intrusive/details/node_traits.h

index 9fd8c8a05b5cea05a99dccd0de3e90030e3992e3..e51554c79744e6c9818258bb2b0055fcf4e1d82f 100644 (file)
@@ -155,7 +155,7 @@ namespace cds { namespace gc {
                 Really, the result of <tt> f( toGuard.load() ) </tt> is assigned to the hazard pointer.
             */
             template <typename T, class Func>
-            T protect( atomics::atomic<T> const& toGuard, Func f ) CDS_NOEXCEPT_( noexcept( Func( atomics::atomic<T>().load(atomics::memory_order_relaxed))))
+            T protect( atomics::atomic<T> const& toGuard, Func f )
             {
                 T pCur = toGuard.load(atomics::memory_order_relaxed);
                 T pRet;
@@ -293,7 +293,7 @@ namespace cds { namespace gc {
                 Actually, the result of <tt> f( toGuard.load() ) </tt> is assigned to the hazard pointer.
             */
             template <typename T, class Func>
-            T protect( size_t nIndex, atomics::atomic<T> const& toGuard, Func f ) CDS_NOEXCEPT_( noexcept( Func( atomics::atomic<T>().load(atomics::memory_order_relaxed))))
+            T protect( size_t nIndex, atomics::atomic<T> const& toGuard, Func f )
             {
                 T pRet;
                 do {
index 89b9cb9791bbdded1de27b7aed748f441aeba272..1fd30d3987ed765ba1d84a4c95b7186bd531d06d 100644 (file)
@@ -153,7 +153,7 @@ namespace cds { namespace gc {
                 Really, the result of <tt> f( toGuard.load() ) </tt> is assigned to the hazard pointer.
             */
             template <typename T, class Func>
-            T protect( atomics::atomic<T> const& toGuard, Func f ) CDS_NOEXCEPT_( noexcept( Func( atomics::atomic<T>().load(atomics::memory_order_relaxed))))
+            T protect( atomics::atomic<T> const& toGuard, Func f )
             {
                 T pCur = toGuard.load(atomics::memory_order_relaxed);
                 T pRet;
@@ -289,7 +289,7 @@ namespace cds { namespace gc {
                 Really, the result of <tt> f( toGuard.load() ) </tt> is assigned to the hazard pointer.
             */
             template <typename T, class Func>
-            T protect( size_t nIndex, atomics::atomic<T> const& toGuard, Func f ) CDS_NOEXCEPT_( noexcept( Func( atomics::atomic<T>().load(atomics::memory_order_relaxed))))
+            T protect( size_t nIndex, atomics::atomic<T> const& toGuard, Func f )
             {
                 T pRet;
                 do {
index 0bccc6417e6804bb5dd66e20ac79c3b9e1b965b6..5099abd74c6b29477861446c0f6531423870ab26 100644 (file)
@@ -153,7 +153,7 @@ namespace cds { namespace intrusive {
     /// Functor converting container's node type to value type
     template <class Container>
     struct node_to_value {
-        typename Container::value_type * operator()( typename Container::node_type * p )
+        typename Container::value_type * operator()( typename Container::node_type * p ) const
         {
             typedef typename Container::node_traits node_traits;
             return node_traits::to_value_ptr( p );