소스 검색

Enable write socket check when there is pending messages to send

Tatsuhiro Tsujikawa 9 년 전
부모
커밋
5ec84f9eae
1개의 변경된 파일7개의 추가작업 그리고 10개의 파일을 삭제
  1. 7 10
      src/PeerInteractionCommand.cc

+ 7 - 10
src/PeerInteractionCommand.cc

@@ -340,19 +340,11 @@ bool PeerInteractionCommand::executeInternal()
       break;
     }
     case WIRED:
-      // See the comment for writable check below.
-      disableWriteCheckSocket();
-
       btInteractive_->doInteractionProcessing();
       if (btInteractive_->countReceivedMessageInIteration() > 0) {
         updateKeepAlive();
       }
 
-      // Writable check to avoid slow seeding
-      if (btInteractive_->isSendingMessageInProgress()) {
-        setWriteCheckSocket(getSocket());
-      }
-
       if (getDownloadEngine()
               ->getRequestGroupMan()
               ->doesOverallDownloadSpeedExceed() ||
@@ -368,9 +360,14 @@ bool PeerInteractionCommand::executeInternal()
       break;
     }
   }
-  if (btInteractive_->countPendingMessage() > 0) {
-    setNoCheck(true);
+  if (btInteractive_->countPendingMessage() > 0 ||
+      btInteractive_->isSendingMessageInProgress()) {
+    setWriteCheckSocket(getSocket());
+  }
+  else {
+    disableWriteCheckSocket();
   }
+
   addCommandSelf();
   return false;
 }