From 3fcfd154fc7d1c62c0f33e57ad626fb1f02403b7 Mon Sep 17 00:00:00 2001 From: sageweil Date: Tue, 4 Sep 2007 05:55:46 +0000 Subject: [PATCH] track queue len in simplemessenger git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1779 29311d96-e01e-0410-9327-a35deaab8ce9 --- trunk/ceph/msg/SimpleMessenger.cc | 6 ++++-- trunk/ceph/msg/SimpleMessenger.h | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/trunk/ceph/msg/SimpleMessenger.cc b/trunk/ceph/msg/SimpleMessenger.cc index 048f3a5c9db74..8b80631dd67d0 100644 --- a/trunk/ceph/msg/SimpleMessenger.cc +++ b/trunk/ceph/msg/SimpleMessenger.cc @@ -40,7 +40,7 @@ Rank rank; -sighandler_t old_sigint_handler; +sighandler_t old_sigint_handler = 0; /******************************************** @@ -50,7 +50,8 @@ sighandler_t old_sigint_handler; void simplemessenger_sigint(int r) { rank.sigint(); - old_sigint_handler(r); + if (old_sigint_handler) + old_sigint_handler(r); } void Rank::sigint() @@ -1180,6 +1181,7 @@ void Rank::EntityMessenger::dispatch_entry() if (!dispatch_queue.empty()) { list ls; ls.swap(dispatch_queue); + qlen = 0; lock.Unlock(); { diff --git a/trunk/ceph/msg/SimpleMessenger.h b/trunk/ceph/msg/SimpleMessenger.h index d5900951883c6..29df9a4066e91 100644 --- a/trunk/ceph/msg/SimpleMessenger.h +++ b/trunk/ceph/msg/SimpleMessenger.h @@ -164,6 +164,7 @@ private: Cond cond; list dispatch_queue; bool stop; + int qlen; class DispatchThread : public Thread { EntityMessenger *m; @@ -180,14 +181,16 @@ private: void queue_message(Message *m) { // set recv stamp m->set_recv_stamp(g_clock.now()); - + lock.Lock(); dispatch_queue.push_back(m); + qlen++; cond.Signal(); lock.Unlock(); } void queue_messages(list ls) { lock.Lock(); + qlen += ls.size(); dispatch_queue.splice(dispatch_queue.end(), ls); cond.Signal(); lock.Unlock(); @@ -206,6 +209,8 @@ private: const entity_addr_t &get_myaddr(); + int get_dispatch_queue_len() { return qlen; } + void reset_myname(entity_name_t m); int shutdown(); -- 2.39.5