summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Farnum <greg@inktank.com>2013-10-02 16:27:19 -0700
committerGreg Farnum <greg@inktank.com>2013-10-03 15:18:43 -0700
commitea831e05bb1392c2b8a2b1c73cd6281fce88badb (patch)
tree2af71fa8390195dfddec2f29e06d5483bb63b36c
parent41a13450527c22be6d0d2832129412ac86145db7 (diff)
downloadceph-ea831e05bb1392c2b8a2b1c73cd6281fce88badb.tar.gz
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 <greg@inktank.com>
-rw-r--r--src/common/TrackedOp.cc1
-rw-r--r--src/common/TrackedOp.h6
-rw-r--r--src/os/Makefile.am3
3 files changed, 7 insertions, 3 deletions
diff --git a/src/common/TrackedOp.cc b/src/common/TrackedOp.cc
index 2c19c9ec0f3..82594a6491e 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 1734fddda0c..2fe9eeb230c 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 b7fef8dd209..4f12a6a3278 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 += \