class gc_common
{
public:
-# ifdef CDS_CXX11_TEMPLATE_ALIAS_SUPPORT
template <typename MarkedPtr> using atomic_marked_ptr = atomics::atomic<MarkedPtr>;
-# else
- template <typename MarkedPtr>
- class atomic_marked_ptr: public atomics::atomic<MarkedPtr>
- {
- typedef atomics::atomic<MarkedPtr> base_class;
- public:
-# ifdef CDS_CXX11_EXPLICITLY_DEFAULTED_FUNCTION_SUPPORT
- atomic_marked_ptr() CDS_NOEXCEPT_DEFAULTED_( noexcept(base_class()) ) = default;
-# else
- atomic_marked_ptr() CDS_NOEXCEPT_( noexcept(base_class()) )
- : base_class()
- {}
-# endif
- explicit CDS_CONSTEXPR atomic_marked_ptr(MarkedPtr val) CDS_NOEXCEPT_( noexcept(base_class( val )) )
- : base_class( val )
- {}
- explicit CDS_CONSTEXPR atomic_marked_ptr(typename MarkedPtr::value_type * p) CDS_NOEXCEPT_( noexcept(base_class( p )) )
- : base_class( p )
- {}
- };
-# endif
};
//@endcond
{
thread_record * pRec;
cds::OS::ThreadId const nullThreadId = cds::OS::c_NullThreadId;
- cds::OS::ThreadId const curThreadId = cds::OS::getCurrentThreadId();
+ cds::OS::ThreadId const curThreadId = cds::OS::get_current_thread_id();
// First try to reuse a retired (non-active) HP record
for ( pRec = m_pHead.load( atomics::memory_order_acquire ); pRec; pRec = pRec->m_list.m_pNext ) {
void destroy()
{
allocator_type al;
- CDS_DEBUG_DO( cds::OS::ThreadId const nullThreadId = cds::OS::c_NullThreadId; )
- CDS_DEBUG_DO( cds::OS::ThreadId const mainThreadId = cds::OS::getCurrentThreadId() ;)
+ CDS_DEBUG_ONLY( cds::OS::ThreadId const nullThreadId = cds::OS::c_NullThreadId; )
+ CDS_DEBUG_ONLY( cds::OS::ThreadId const mainThreadId = cds::OS::get_current_thread_id() ;)
thread_record * p = m_pHead.exchange( nullptr, atomics::memory_order_seq_cst );
while ( p ) {
assert( p->m_list.m_idOwner.load( atomics::memory_order_relaxed ) == nullThreadId
|| p->m_list.m_idOwner.load( atomics::memory_order_relaxed ) == mainThreadId
- || !cds::OS::isThreadAlive( p->m_list.m_idOwner.load( atomics::memory_order_relaxed ) )
+ || !cds::OS::is_thread_alive( p->m_list.m_idOwner.load( atomics::memory_order_relaxed ) )
);
al.Delete( p );