From: Greg Farnum Date: Wed, 2 Oct 2013 22:35:53 +0000 (-0700) Subject: TrackedOp: template OpTracker on only T[::Ref] (ie, OpRequest[::Ref]) X-Git-Tag: v0.72-rc1~93^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2723a09aba868b9357a042438bc26bc4fd6ef94f;p=ceph.git TrackedOp: template OpTracker on only T[::Ref] (ie, OpRequest[::Ref]) Signed-off-by: Greg Farnum --- diff --git a/src/common/TrackedOp.h b/src/common/TrackedOp.h index 3344301c7c8c..c098c4b01704 100644 --- a/src/common/TrackedOp.h +++ b/src/common/TrackedOp.h @@ -91,19 +91,19 @@ public: assert(ops_in_flight.empty()); } - template - TRef create_request(Message *ref) + template + typename T::Ref create_request(Message *ref) { - TRef retval(new T(ref, this), - RemoveOnDelete(this)); - + typename T::Ref retval(new T(ref, 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()); - + retval->init_from_message(); - + return retval; } }; diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 2e933b38bf03..8150d9b3cd98 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -4724,7 +4724,7 @@ void OSD::_dispatch(Message *m) default: { - OpRequestRef op = op_tracker.create_request(m); + OpRequestRef op = op_tracker.create_request(m); op->mark_event("waiting_for_osdmap"); // no map? starting up? if (!osdmap) { diff --git a/src/osd/OpRequest.h b/src/osd/OpRequest.h index 88c4e7d4bc20..6131aae0d2d8 100644 --- a/src/osd/OpRequest.h +++ b/src/osd/OpRequest.h @@ -143,9 +143,10 @@ public: } void init_from_message(); -}; -typedef std::tr1::shared_ptr OpRequestRef; + typedef std::tr1::shared_ptr Ref; +}; +typedef OpRequest::Ref OpRequestRef; #endif /* OPREQUEST_H_ */