]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
async: skip unnecessary steps when parsing simple messages
authorHaomai Wang <haomai@xsky.com>
Sat, 12 Mar 2016 13:02:51 +0000 (21:02 +0800)
committerHaomai Wang <haomai@xsky.com>
Sun, 13 Mar 2016 04:22:43 +0000 (12:22 +0800)
Signed-off-by: Haomai Wang <haomai@xsky.com>
src/msg/async/AsyncConnection.cc

index bbe8875c595cf0c03ca892849a7a96e3a2afe0fc..a35f1eaedff099c8dd80b794113391213a680585 100644 (file)
@@ -731,7 +731,6 @@ void AsyncConnection::process()
             ldout(async_msgr->cct, 20) << __func__ << " got front " << front.length() << dendl;
           }
           state = STATE_OPEN_MESSAGE_READ_MIDDLE;
-          break;
         }
 
       case STATE_OPEN_MESSAGE_READ_MIDDLE:
@@ -753,7 +752,6 @@ void AsyncConnection::process()
           }
 
           state = STATE_OPEN_MESSAGE_READ_DATA_PREPARE;
-          break;
         }
 
       case STATE_OPEN_MESSAGE_READ_DATA_PREPARE:
@@ -782,7 +780,6 @@ void AsyncConnection::process()
 
           msg_left = data_len;
           state = STATE_OPEN_MESSAGE_READ_DATA;
-          break;
         }
 
       case STATE_OPEN_MESSAGE_READ_DATA:
@@ -803,10 +800,10 @@ void AsyncConnection::process()
             msg_left -= read;
           }
 
-          if (msg_left == 0)
-            state = STATE_OPEN_MESSAGE_READ_FOOTER_AND_DISPATCH;
+          if (msg_left > 0)
+            break;
 
-          break;
+          state = STATE_OPEN_MESSAGE_READ_FOOTER_AND_DISPATCH;
         }
 
       case STATE_OPEN_MESSAGE_READ_FOOTER_AND_DISPATCH: