return seastar::now();
}
DEBUGDPP("can't lock_for_read, adding to waiters", *this);
- waiters.emplace_back(seastar::promise<>(), type_t::read);
+ waiters.emplace_back(seastar::promise<>(), type_t::read, name);
return waiters.back().pr.get_future();
}
return seastar::now();
}
DEBUGDPP("can't lock_for_write, adding to waiters", *this);
- waiters.emplace_back(seastar::promise<>(), type_t::write);
+ waiters.emplace_back(seastar::promise<>(), type_t::write, name);
return waiters.back().pr.get_future();
}
return seastar::now();
}
DEBUGDPP("can't lock_for_excl, adding to waiters", *this);
- waiters.emplace_back(seastar::promise<>(), type_t::exclusive);
+ waiters.emplace_back(seastar::promise<>(), type_t::exclusive, name);
return waiters.back().pr.get_future();
}
default:
assert(0);
}
- // TODO: DEBUGDPP("waking up {} ", *this);
+ DEBUGDPP("waking up {}", *this, waiter.waiter_name);
waiter.pr.set_value();
waiters.pop_front();
}
none,
};
struct waiter_t {
- waiter_t(seastar::promise<>&& pr, type_t type)
+ waiter_t(seastar::promise<>&& pr, type_t type, std::string_view waiter_name)
: pr(std::move(pr)), type(type)
{}
seastar::promise<> pr;
type_t type;
+ std::string_view waiter_name;
};
seastar::circular_buffer<waiter_t> waiters;
const std::string name;