]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/TrackedOp: move ShardedTrackingData to .cc 10639/head
authorMichal Jarzabek <stiopa@gmail.com>
Tue, 9 Aug 2016 22:21:09 +0000 (23:21 +0100)
committerMichal Jarzabek <stiopa@gmail.com>
Tue, 9 Aug 2016 22:21:09 +0000 (23:21 +0100)
Signed-off-by: Michal Jarzabek <stiopa@gmail.com>
src/common/TrackedOp.cc
src/common/TrackedOp.h

index 28458ad54bdf5a66ea9072c2032f110215d22263..9477da62a12ef86e695a18e01e07b22a98c1cf07 100644 (file)
@@ -87,6 +87,35 @@ void OpHistory::dump_ops(utime_t now, Formatter *f)
   f->close_section();
 }
 
+struct ShardedTrackingData {
+  Mutex ops_in_flight_lock_sharded;
+  xlist<TrackedOp *> ops_in_flight_sharded;
+  explicit ShardedTrackingData(string lock_name):
+      ops_in_flight_lock_sharded(lock_name.c_str()) {}
+};
+
+OpTracker::OpTracker(CephContext *cct_, bool tracking, uint32_t num_shards):
+  seq(0),
+  num_optracker_shards(num_shards),
+  complaint_time(0), log_threshold(0),
+  tracking_enabled(tracking),
+  lock("OpTracker::lock"), cct(cct_) {
+    for (uint32_t i = 0; i < num_optracker_shards; i++) {
+      char lock_name[32] = {0};
+      snprintf(lock_name, sizeof(lock_name), "%s:%d", "OpTracker::ShardedLock", i);
+      ShardedTrackingData* one_shard = new ShardedTrackingData(lock_name);
+      sharded_in_flight_list.push_back(one_shard);
+    }
+}
+
+OpTracker::~OpTracker() {
+  while (!sharded_in_flight_list.empty()) {
+    assert((sharded_in_flight_list.back())->ops_in_flight_sharded.empty());
+    delete sharded_in_flight_list.back();
+    sharded_in_flight_list.pop_back();
+  }
+}
+
 bool OpTracker::dump_historic_ops(Formatter *f)
 {
   RWLock::RLocker l(lock);
index ddaaa522e8721e0b697a319ef1c6b5a490227517..b19cc5e25cb0e3f24c7f6e000caee54b0d905e66 100644 (file)
@@ -53,6 +53,7 @@ public:
   }
 };
 
+struct ShardedTrackingData;
 class OpTracker {
   class RemoveOnDelete {
     OpTracker *tracker;
@@ -63,12 +64,6 @@ class OpTracker {
   friend class RemoveOnDelete;
   friend class OpHistory;
   atomic64_t seq;
-  struct ShardedTrackingData {
-    Mutex ops_in_flight_lock_sharded;
-    xlist<TrackedOp *> ops_in_flight_sharded;
-    explicit ShardedTrackingData(string lock_name):
-        ops_in_flight_lock_sharded(lock_name.c_str()) {}
-  };
   vector<ShardedTrackingData*> sharded_in_flight_list;
   uint32_t num_optracker_shards;
   OpHistory history;
@@ -80,19 +75,7 @@ class OpTracker {
 
 public:
   CephContext *cct;
-  OpTracker(CephContext *cct_, bool tracking, uint32_t num_shards) : seq(0), 
-                                     num_optracker_shards(num_shards),
-                                    complaint_time(0), log_threshold(0),
-                                    tracking_enabled(tracking),
-                                    lock("OpTracker::lock"), cct(cct_) {
-
-    for (uint32_t i = 0; i < num_optracker_shards; i++) {
-      char lock_name[32] = {0};
-      snprintf(lock_name, sizeof(lock_name), "%s:%d", "OpTracker::ShardedLock", i);
-      ShardedTrackingData* one_shard = new ShardedTrackingData(lock_name);
-      sharded_in_flight_list.push_back(one_shard);
-    }
-  }
+  OpTracker(CephContext *cct_, bool tracking, uint32_t num_shards);
       
   void set_complaint_and_threshold(float time, int threshold) {
     complaint_time = time;
@@ -127,13 +110,7 @@ public:
   void on_shutdown() {
     history.on_shutdown();
   }
-  ~OpTracker() {
-    while (!sharded_in_flight_list.empty()) {
-      assert((sharded_in_flight_list.back())->ops_in_flight_sharded.empty());
-      delete sharded_in_flight_list.back();
-      sharded_in_flight_list.pop_back();
-    }    
-  }
+  ~OpTracker();
 
   template <typename T, typename U>
   typename T::Ref create_request(U params)