Fixed noexcept args
[libcds.git] / cds / sync / spinlock.h
index 794271a8fec7e1e751827d8f9248299a2a9475a0..b1dfe82810e9168ccb1e102a797e65ee0075c518 100644 (file)
@@ -255,7 +255,7 @@ namespace cds {
             {}
 
             /// Construct object for specified state
-            explicit reentrant_spin_lock( bool bLocked ) CDS_NOEXCEPT_( noexcept(lock()))
+            explicit reentrant_spin_lock( bool bLocked )
                 : m_spin(0)
                 , m_OwnerId( OS::c_NullThreadId )
             {
@@ -287,7 +287,7 @@ namespace cds {
             }
 
             /// Try to lock the object
-            bool try_lock( unsigned int nTryCount ) CDS_NOEXCEPT_( noexcept( try_acquire( nTryCount )))
+            bool try_lock( unsigned int nTryCount ) CDS_NOEXCEPT_( noexcept( std::declval<reentrant_spin_lock>().try_acquire( nTryCount )))
             {
                 thread_id tid = OS::get_current_thread_id();
                 if ( try_taken_lock( tid ) )
@@ -300,7 +300,7 @@ namespace cds {
             }
 
             /// Lock the object waits if it is busy
-            void lock() CDS_NOEXCEPT_( noexcept( acquire()))
+            void lock() CDS_NOEXCEPT_( noexcept( std::declval<reentrant_spin_lock>().acquire()))
             {
                 thread_id tid = OS::get_current_thread_id();
                 if ( !try_taken_lock( tid ) ) {