assert(ops_in_flight.empty());
}
- template <typename T>
- typename T::Ref create_request(Message *ref)
+ template <typename T, typename U>
+ typename T::Ref create_request(U params)
{
- typename T::Ref retval(new T(ref, this),
+ typename T::Ref retval(new T(params, this),
RemoveOnDelete(this));
-
- _mark_event(retval.get(), "header_read", ref->get_recv_stamp());
- _mark_event(retval.get(), "throttled", ref->get_throttle_stamp());
- _mark_event(retval.get(), "all_read", ref->get_recv_complete_stamp());
- _mark_event(retval.get(), "dispatched", ref->get_dispatch_stamp());
-
return retval;
}
};
default:
{
- OpRequestRef op = op_tracker.create_request<OpRequest>(m);
+ OpRequestRef op = op_tracker.create_request<OpRequest, Message*>(m);
op->mark_event("waiting_for_osdmap");
// no map? starting up?
if (!osdmap) {
} else if (req->get_type() == MSG_OSD_SUBOP) {
reqid = static_cast<MOSDSubOp*>(req)->reqid;
}
+ tracker->_mark_event(this, "header_read", request->get_recv_stamp());
+ tracker->_mark_event(this, "throttled", request->get_throttle_stamp());
+ tracker->_mark_event(this, "all_read", request->get_recv_complete_stamp());
+ tracker->_mark_event(this, "dispatched", request->get_dispatch_stamp());
}
void OpRequest::_dump(utime_t now, Formatter *f) const