-//$$CDS-header$$-2
+//$$CDS-header$$
#ifndef CDSLIB_SYNC_SPINLOCK_H
#define CDSLIB_SYNC_SPINLOCK_H
{}
/// Construct object for specified state
- reentrant_spin_lock( bool bLocked ) CDS_NOEXCEPT
+ explicit reentrant_spin_lock( bool bLocked )
: m_spin(0)
, m_OwnerId( OS::c_NullThreadId )
{
}
/// 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 ) )
}
/// Lock the object waits if it is busy
- void lock() CDS_NOEXCEPT
+ void lock() CDS_NOEXCEPT_( noexcept( std::declval<reentrant_spin_lock>().acquire()))
{
thread_id tid = OS::get_current_thread_id();
if ( !try_taken_lock( tid ) ) {