optimized piece picking to not cause busy loops in some end-game modes

This commit is contained in:
Arvid Norberg
2010-12-18 10:19:34 +00:00
parent f2416af718
commit 20d4279177
7 changed files with 69 additions and 7 deletions

View File

@@ -3411,7 +3411,8 @@ It contains the following fields::
optimistic_unchoke = 0x800,
snubbed = 0x1000,
upload_only = 0x2000,
holepunched = 0x4000,
endgame_mode = 0x4000,
holepunched = 0x8000,
rc4_encrypted = 0x100000,
plaintext_encrypted = 0x200000
};
@@ -3560,6 +3561,11 @@ any combination of the enums above. The following table describes each flag:
| | will not downloading anything more, regardless of |
| | which pieces we have. |
+-------------------------+-------------------------------------------------------+
| ``endgame_mode`` | This means the last time this peer picket a piece, |
| | it could not pick as many as it wanted because there |
| | were not enough free ones. i.e. all pieces this peer |
| | has were already requested from other peers. |
+-------------------------+-------------------------------------------------------+
| ``holepunched`` | This flag is set if the peer was in holepunch mode |
| | when the connection succeeded. This typically only |
| | happens if both peers are behind a NAT and the peers |