class Operation : public boost::intrusive_ref_counter<
Operation, boost::thread_unsafe_counter> {
public:
- uint64_t get_id() const {
+ using id_t = uint64_t;
+ id_t get_id() const {
return id;
}
registry_hook_t registry_hook;
- uint64_t id = 0;
- void set_id(uint64_t in_id) {
+ id_t id = 0;
+ void set_id(id_t in_id) {
id = in_id;
}
}
};
-std::vector<crimson::OperationRef> handle_pg_create(
+std::vector<crimson::Operation::id_t> handle_pg_create(
PGShardManager &pg_shard_manager,
crimson::net::ConnectionRef conn,
compound_state_ref state,
Ref<MOSDPGCreate2> m)
{
- std::vector<crimson::OperationRef> ret;
+ std::vector<crimson::Operation::id_t> ret;
for (auto& [pgid, when] : m->pgs) {
const auto &[created, created_stamp] = when;
auto q = m->pg_extra.find(pgid);
pgid, m->epoch,
pi, history);
} else {
- auto op = pg_shard_manager.start_pg_operation<PeeringSubEvent>(
+ auto [op_id, fut] = pg_shard_manager.start_pg_operation<PeeringSubEvent>(
state,
conn,
pg_shard_t(),
m->epoch,
NullEvt(),
true,
- new PGCreateInfo(pgid, m->epoch, history, pi, true)).first;
- ret.push_back(op);
+ new PGCreateInfo(pgid, m->epoch, history, pi, true));
+ ret.push_back(op_id);
}
}
return ret;
struct SubOpBlocker : crimson::BlockerT<SubOpBlocker> {
static constexpr const char * type_name = "CompoundOpBlocker";
- std::vector<crimson::OperationRef> subops;
- SubOpBlocker(std::vector<crimson::OperationRef> &&subops)
+ std::vector<crimson::Operation::id_t> subops;
+ SubOpBlocker(std::vector<crimson::Operation::id_t> &&subops)
: subops(subops) {}
virtual void dump_detail(Formatter *f) const {
f->open_array_section("dependent_operations");
{
for (auto &i : subops) {
- i->dump_brief(f);
+ f->dump_unsigned("op_id", i);
}
}
f->close_section();