3 #ifndef __CDS_GC_DHP_DHP_IMPL_H
4 #define __CDS_GC_DHP_DHP_IMPL_H
6 #include <cds/threading/model.h>
9 namespace cds { namespace gc {
11 inline PTB::thread_gc::thread_gc(
14 : m_bPersistent( bPersistent )
16 if ( !cds::threading::Manager::isThreadAttached() )
17 cds::threading::Manager::attachThread();
20 inline PTB::thread_gc::~thread_gc()
23 cds::threading::Manager::detachThread();
26 inline PTB::Guard::Guard()
27 : Guard::base_class( cds::threading::getGC<PTB>() )
30 template <size_t COUNT>
31 inline PTB::GuardArray<COUNT>::GuardArray()
32 : GuardArray::base_class( cds::threading::getGC<PTB>() )
35 inline void PTB::scan()
37 cds::threading::getGC<PTB>().scan();
40 }} // namespace cds::gc
43 #endif // #ifndef __CDS_GC_DHP_DHP_IMPL_H