From: Haomai Wang Date: Fri, 5 Dec 2014 04:20:56 +0000 (+0800) Subject: PipeConnection: Modify "is_connected" semantic X-Git-Tag: v0.91~37^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f6d81d392edbc30a1d9c1e807221172bd42516d6;p=ceph.git PipeConnection: Modify "is_connected" semantic "is_connected" should be used to judge whether have built a successful connection with peer. Since "pipe == NULL" is useless for whether connected because pipe can be construct without any potential network problem Signed-off-by: Haomai Wang --- diff --git a/src/msg/simple/Pipe.h b/src/msg/simple/Pipe.h index 59d7136f795..9b464a5065b 100644 --- a/src/msg/simple/Pipe.h +++ b/src/msg/simple/Pipe.h @@ -140,6 +140,11 @@ class DispatchQueue; return static_cast(RefCountedObject::get()); } + bool is_connected() { + Mutex::Locker l(pipe_lock); + return state == STATE_OPEN; + } + char *recv_buf; int recv_max_prefetch; int recv_ofs; diff --git a/src/msg/simple/PipeConnection.cc b/src/msg/simple/PipeConnection.cc index f4db37496fc..cd20d9774a9 100644 --- a/src/msg/simple/PipeConnection.cc +++ b/src/msg/simple/PipeConnection.cc @@ -67,6 +67,13 @@ void PipeConnection::reset_pipe(Pipe *p) pipe = p->get(); } +bool PipeConnection::is_connected() { + Mutex::Locker l(lock); + if (pipe) + return pipe->is_connected(); + return false; +} + int PipeConnection::send_message(Message *m) { assert(msgr); diff --git a/src/msg/simple/PipeConnection.h b/src/msg/simple/PipeConnection.h index cbe2677eedf..00f6d0e16d3 100644 --- a/src/msg/simple/PipeConnection.h +++ b/src/msg/simple/PipeConnection.h @@ -41,10 +41,7 @@ public: void reset_pipe(Pipe* p); - bool is_connected() { - Mutex::Locker l(lock); - return pipe != NULL; - } + bool is_connected(); int send_message(Message *m); void send_keepalive();