MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / fini

Method fini

extern/libcds/src/thread_data.cpp:36–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34 }
35
36 CDS_EXPORT_API bool ThreadData::fini()
37 {
38 if ( --m_nAttachCount == 0 ) {
39 if ( cds::gc::DHP::isUsed())
40 cds::gc::dhp::smr::detach_thread();
41 if ( cds::gc::HP::isUsed())
42 cds::gc::hp::smr::detach_thread();
43
44 if ( cds::urcu::details::singleton<cds::urcu::general_instant_tag>::isUsed()) {
45 cds::urcu::details::singleton<cds::urcu::general_instant_tag>::detach_thread( m_pGPIRCU );
46 m_pGPIRCU = nullptr;
47 }
48 if ( cds::urcu::details::singleton<cds::urcu::general_buffered_tag>::isUsed()) {
49 cds::urcu::details::singleton<cds::urcu::general_buffered_tag>::detach_thread( m_pGPBRCU );
50 m_pGPBRCU = nullptr;
51 }
52 if ( cds::urcu::details::singleton<cds::urcu::general_threaded_tag>::isUsed()) {
53 cds::urcu::details::singleton<cds::urcu::general_threaded_tag>::detach_thread( m_pGPTRCU );
54 m_pGPTRCU = nullptr;
55 }
56#ifdef CDS_URCU_SIGNAL_HANDLING_ENABLED
57 if ( cds::urcu::details::singleton<cds::urcu::signal_buffered_tag>::isUsed()) {
58 cds::urcu::details::singleton<cds::urcu::signal_buffered_tag>::detach_thread( m_pSHBRCU );
59 m_pSHBRCU = nullptr;
60 }
61#endif
62 return true;
63 }
64 return false;
65 }
66
67
68}} // namespace cds::threading

Callers 3

~smrMethod · 0.45
free_thread_dataMethod · 0.45
help_scanMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected