Athena::DBLock Node1 Athena::DBLock + DBLock() + DBLock() + DBLock() + operator=() + operator=() + ~DBLock() Node2 std::recursive_mutex Node2->Node1 -m_mutex Node4 std::unique_lock< std ::recursive_mutex > Node2->Node4 +ptr Node3 std::shared_ptr< lock_t > + operator->() Node3->Node1 -m_lockPtr Node4->Node3 +ptr