]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/async/Event: each Stack should use different global_centers
authorHaomai Wang <haomai@xsky.com>
Sun, 15 Jan 2017 16:07:08 +0000 (00:07 +0800)
committerHaomai Wang <haomai@xsky.com>
Thu, 26 Jan 2017 05:58:52 +0000 (13:58 +0800)
Signed-off-by: Haomai Wang <haomai@xsky.com>
src/msg/async/Event.cc
src/msg/async/Event.h
src/test/msgr/test_async_driver.cc

index 0ce65ed23b2bdb46eeeca725fa23cd1bf5dd7a5a..ca48d38be87827a9a8cb1c1030bb7d16d5410bfc 100644 (file)
@@ -99,11 +99,12 @@ ostream& EventCenter::_event_prefix(std::ostream *_dout)
                 << " time_id=" << time_event_next_id << ").";
 }
 
-int EventCenter::init(int n, unsigned i, std::string &t)
+int EventCenter::init(int n, unsigned i, const std::string &t)
 {
   // can't init multi times
   assert(nevent == 0);
 
+  type = t;
   idx = i;
 
   if (t == "dpdk") {
@@ -189,7 +190,7 @@ void EventCenter::set_owner()
   ldout(cct, 2) << __func__ << " idx=" << idx << " owner=" << owner << dendl;
   if (!global_centers) {
     cct->lookup_or_create_singleton_object<EventCenter::AssociatedCenters>(
-        global_centers, "AsyncMessenger::EventCenter::global_center");
+        global_centers, "AsyncMessenger::EventCenter::global_center::"+type);
     assert(global_centers);
     global_centers->centers[idx] = this;
     if (driver->need_wakeup()) {
index f57a1cf49495e43789278735e5a0d2a7ce5af53a..d1c7350cb0d16c6da6c52fe7509884176a2e46a8 100644 (file)
@@ -152,6 +152,7 @@ class EventCenter {
 
  private:
   CephContext *cct;
+  std::string type;
   int nevent;
   // Used only to external event
   pthread_t owner;
@@ -190,7 +191,7 @@ class EventCenter {
   ~EventCenter();
   ostream& _event_prefix(std::ostream *_dout);
 
-  int init(int nevent, unsigned idx, std::string &t);
+  int init(int nevent, unsigned idx, const std::string &t);
   void set_owner();
   pthread_t get_owner() const { return owner; }
   unsigned get_id() const { return idx; }
index 87aac346eed477d114a9c58d1b3cf9946b30c456..7773db77c57d4350301b1fdb8fe7110eb9564303 100644 (file)
@@ -256,7 +256,7 @@ class FakeEvent : public EventCallback {
 TEST(EventCenterTest, FileEventExpansion) {
   vector<int> sds;
   EventCenter center(g_ceph_context);
-  center.init(100, 0);
+  center.init(100, 0, "posix");
   center.set_owner();
   EventCallbackRef e(new FakeEvent());
   for (int i = 0; i < 300; i++) {
@@ -277,7 +277,7 @@ class Worker : public Thread {
  public:
   EventCenter center;
   explicit Worker(CephContext *c, int idx): cct(c), done(false), center(c) {
-    center.init(100, idx);
+    center.init(100, idx, "posix");
   }
   void stop() {
     done = true;