... also change the lock type in rbd mirror.
Signed-off-by: Mahati Chamarthy <mahati.chamarthy@intel.com>
ASSERT_EQ(0, librbd::cls_client::mirror_instances_add(&m_local_io_ctx,
instance_id1));
-
C_SaferCond on_init;
instances.init(&on_init);
ASSERT_EQ(0, on_init.wait());
- instances.acked({instance_id1, instance_id2});
+ instances.acked({instance_id2});
ASSERT_LT(0U, m_listener.add.count);
instances.unblock_listener();
template <typename I>
void Instances<I>::notify_instances_added(const InstanceIds& instance_ids) {
- std::lock_guard locker{m_lock};
+ std::unique_lock locker{m_lock};
InstanceIds added_instance_ids;
for (auto& instance_id : instance_ids) {
auto it = m_instances.find(instance_id);
}
dout(5) << "instance_ids=" << added_instance_ids << dendl;
- m_lock.unlock();
+ locker.unlock();
m_listener.handle_added(added_instance_ids);
- m_lock.lock();
+ locker.lock();
for (auto& instance_id : added_instance_ids) {
auto it = m_instances.find(instance_id);