]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
PipeConnection: Modify "is_connected" semantic
authorHaomai Wang <haomaiwang@gmail.com>
Fri, 5 Dec 2014 04:20:56 +0000 (12:20 +0800)
committerHaomai Wang <haomaiwang@gmail.com>
Sat, 6 Dec 2014 12:23:35 +0000 (20:23 +0800)
"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 <haomaiwang@gmail.com>
src/msg/simple/Pipe.h
src/msg/simple/PipeConnection.cc
src/msg/simple/PipeConnection.h

index 59d7136f7956f69664d2918304030662e6edbc41..9b464a5065b0947938bfc9a91058e80f4a0747a3 100644 (file)
@@ -140,6 +140,11 @@ class DispatchQueue;
       return static_cast<Pipe*>(RefCountedObject::get());
     }
 
+    bool is_connected() {
+      Mutex::Locker l(pipe_lock);
+      return state == STATE_OPEN;
+    }
+
     char *recv_buf;
     int recv_max_prefetch;
     int recv_ofs;
index f4db37496fceccd6191caddd25b7540ef42c15c2..cd20d9774a9829f1ebacaa7c99a863c62b521357 100644 (file)
@@ -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);
index cbe2677eedfad6e2bcf2a3f5f751942e7fd023b0..00f6d0e16d3f6432e22fe97f7fde4d45a9b52ac9 100644 (file)
@@ -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();