From: Greg Farnum Date: Wed, 2 Oct 2013 23:27:19 +0000 (-0700) Subject: TrackedOp: give people an _event_marked() notifier instead of a virtual mark_event() X-Git-Tag: v0.72-rc1~93^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ea831e05bb1392c2b8a2b1c73cd6281fce88badb;p=ceph.git TrackedOp: give people an _event_marked() notifier instead of a virtual mark_event() This is less prone to getting broken. Signed-off-by: Greg Farnum --- diff --git a/src/common/TrackedOp.cc b/src/common/TrackedOp.cc index 2c19c9ec0f3c..82594a6491e6 100644 --- a/src/common/TrackedOp.cc +++ b/src/common/TrackedOp.cc @@ -246,6 +246,7 @@ void TrackedOp::mark_event(const string &event) events.push_back(make_pair(now, event)); } tracker->mark_event(this, event); + _event_marked(); } void TrackedOp::dump(utime_t now, Formatter *f) const diff --git a/src/common/TrackedOp.h b/src/common/TrackedOp.h index 1734fddda0c9..2fe9eeb230c1 100644 --- a/src/common/TrackedOp.h +++ b/src/common/TrackedOp.h @@ -132,9 +132,11 @@ protected: tracker->register_inflight_op(&xitem); } - virtual void init_from_message() {}; + virtual void init_from_message() {} /// output any type-specific data you want to get when dump() is called virtual void _dump(utime_t now, Formatter *f) const {} + /// if you want something else to happen when events are marked, implement + virtual void _event_marked() {} public: virtual ~TrackedOp() { assert(request); request->put(); } @@ -150,7 +152,7 @@ public: } Message *get_req() const { return request; } - virtual void mark_event(const string &event); + void mark_event(const string &event); virtual const char *state_string() const { return events.rbegin()->second.c_str(); } diff --git a/src/os/Makefile.am b/src/os/Makefile.am index b7fef8dd209a..4f12a6a32781 100644 --- a/src/os/Makefile.am +++ b/src/os/Makefile.am @@ -13,7 +13,8 @@ libos_la_SOURCES = \ os/WBThrottle.cc \ os/BtrfsFileStoreBackend.cc \ os/GenericFileStoreBackend.cc \ - os/ZFSFileStoreBackend.cc + os/ZFSFileStoreBackend.cc \ + common/TrackedOp.cc noinst_LTLIBRARIES += libos.la noinst_HEADERS += \