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