3 #ifndef _CDS_URCU_DETAILS_CHECK_DEADLOCK_H
4 #define _CDS_URCU_DETAILS_CHECK_DEADLOCK_H
6 #include <cds/urcu/options.h>
9 namespace cds { namespace urcu { namespace details {
11 template <class RCU, typename PolicyType>
12 struct check_deadlock_policy
16 assert( !RCU::is_locked() );
17 if ( RCU::is_locked() )
18 throw cds::urcu::rcu_deadlock();
23 struct check_deadlock_policy< RCU, cds::opt::v::rcu_no_check_deadlock>
30 struct check_deadlock_policy< RCU, cds::opt::v::rcu_assert_deadlock>
34 assert( !RCU::is_locked() );
38 }}} // namespace cds::urcu::details
41 #endif // #ifndef _CDS_URCU_DETAILS_CHECK_DEADLOCK_H