Rarest set of pieces is replaced with set of rarest pieces indexes#211
Open
Dead-off wants to merge 107 commits into
Open
Rarest set of pieces is replaced with set of rarest pieces indexes#211Dead-off wants to merge 107 commits into
Dead-off wants to merge 107 commits into
Conversation
…sage.parse Order of the parameters to the HTTPAnnounceRequestMessage constructor was incorrect in the parse() method. Thanks to Dan Oxlade for reporting the problem. Closes mpetazzoni#48. Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Allow trackerless torrent files mpetazzoni#2 Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
…h InboundThread and OutboundThread to a common ExchangeThread superclass.
… download/upload rate limiting algorithm
Add ability to set upload/download rate limits. Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Fix read when message size wasn't read in one step Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
BDecode support for negative integers Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Fixes bug with selecting the announce client A previous change introduced a bug in the selection of the announce tier and client. Closes mpetazzoni#51. Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Use maven-shade-plugin to produce executable jar Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Update pom for compatibility with the maven-release-plugin Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Clean up javadoc problems Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Shell script updates for wider platform compatibility Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Move entry-point main methods to separate package Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Resolves: mpetazzoni#144 See also: mpetazzoni#146
Remove dependency on Apache comons-codec
…eerexchange Allow immedidate shutdown of peerexchange by notifying out-going thread
This change prevents the modification of a storage file in case the file is already complete and all pieces are available.
…zoni#169 Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
…ng-file-only-if-required Change the length of an existing storage file only if required
Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
In preparation of incoming 1.5 release, with the cli/core split. Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
Signed-off-by: Maxime Petazzoni <maxime.petazzoni@bulix.org>
The old implementation of byteArrayToHexString drops the byte array’s leading zeros.
…tring Fix byteArrayToHexString and add tests
Unchoke the random peer in optimistic unchoking
Fixed a BufferUnderflowException in message parsing when PeerExchange is closing
…in compareTo and use this object in sorted set. It turns out the set may not find such object after modification, which leads to memory leak when object is added to the set again.
mpetazzoni
requested changes
Dec 18, 2017
| import java.util.List; | ||
| import java.util.SortedSet; | ||
| import java.util.TreeSet; | ||
| import java.util.*; |
| "that was already requested from another peer."); | ||
| } | ||
|
|
||
| SortedSet<Piece> rarest = new TreeSet<Piece>(); |
Owner
There was a problem hiding this comment.
Not a fan of the field hiding. Could you name the sorted set rarestPieces instead?
Collaborator
Author
There was a problem hiding this comment.
Sorry, i did not notice. Fixed
mpetazzoni
requested changes
Dec 18, 2017
| this.initialized = false; | ||
| this.pieces = new Piece[0]; | ||
| this.rarest = Collections.synchronizedSortedSet(new TreeSet<Piece>()); | ||
| this.rarest = new HashSet<Integer>(); |
Owner
There was a problem hiding this comment.
Oh, don't you also need to make this a synchronized set?
Collaborator
Author
There was a problem hiding this comment.
It is not needed, because rarest field is always used in synchronized functions
…ield have same name. Replaced import * with single class imports
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix memory leak. It is not a good idea to change field which is used in compareTo and use this object in sorted set. It turns out the set may not find such object after modification, which leads to memory leak when object is added to the set again.
Also we can replace delete-add modify of this set with only add