i2psnark: Don't say 'download finished' unless we downloaded something

atomics
This commit is contained in:
zzz
2015-06-02 20:14:33 +00:00
parent dc9256f274
commit 09e867b194
2 changed files with 11 additions and 9 deletions

View File

@ -33,6 +33,7 @@ import java.util.Map;
import java.util.Random; import java.util.Random;
import java.util.Set; import java.util.Set;
import java.util.concurrent.LinkedBlockingDeque; import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.atomic.AtomicLong;
import net.i2p.I2PAppContext; import net.i2p.I2PAppContext;
import net.i2p.data.ByteArray; import net.i2p.data.ByteArray;
@ -87,8 +88,8 @@ class PeerCoordinator implements PeerListener
// final static int MAX_DOWNLOADERS = MAX_CONNECTIONS; // final static int MAX_DOWNLOADERS = MAX_CONNECTIONS;
// int downloaders = 0; // int downloaders = 0;
private long uploaded; private final AtomicLong uploaded = new AtomicLong();
private long downloaded; private final AtomicLong downloaded = new AtomicLong();
final static int RATE_DEPTH = 3; // make following arrays RATE_DEPTH long final static int RATE_DEPTH = 3; // make following arrays RATE_DEPTH long
private final long uploaded_old[] = {-1,-1,-1}; private final long uploaded_old[] = {-1,-1,-1};
private final long downloaded_old[] = {-1,-1,-1}; private final long downloaded_old[] = {-1,-1,-1};
@ -279,7 +280,7 @@ class PeerCoordinator implements PeerListener
*/ */
public long getUploaded() public long getUploaded()
{ {
return uploaded; return uploaded.get();
} }
/** /**
@ -287,7 +288,7 @@ class PeerCoordinator implements PeerListener
* @since 0.9.15 * @since 0.9.15
*/ */
public void setUploaded(long up) { public void setUploaded(long up) {
uploaded = up; uploaded.set(up);
} }
/** /**
@ -295,7 +296,7 @@ class PeerCoordinator implements PeerListener
*/ */
public long getDownloaded() public long getDownloaded()
{ {
return downloaded; return downloaded.get();
} }
/** /**
@ -944,7 +945,7 @@ class PeerCoordinator implements PeerListener
*/ */
public void uploaded(Peer peer, int size) public void uploaded(Peer peer, int size)
{ {
uploaded += size; uploaded.addAndGet(size);
//if (listener != null) //if (listener != null)
// listener.peerChange(this, peer); // listener.peerChange(this, peer);
@ -955,7 +956,7 @@ class PeerCoordinator implements PeerListener
*/ */
public void downloaded(Peer peer, int size) public void downloaded(Peer peer, int size)
{ {
downloaded += size; downloaded.addAndGet(size);
//if (listener != null) //if (listener != null)
// listener.peerChange(this, peer); // listener.peerChange(this, peer);
@ -1004,7 +1005,7 @@ class PeerCoordinator implements PeerListener
else else
{ {
// Oops. We didn't actually download this then... :( // Oops. We didn't actually download this then... :(
downloaded -= metainfo.getPieceLength(piece); downloaded.addAndGet(0 - metainfo.getPieceLength(piece));
_log.warn("Got BAD piece " + piece + "/" + metainfo.getPieces() + " from " + peer + " for " + metainfo.getName()); _log.warn("Got BAD piece " + piece + "/" + metainfo.getPieces() + " from " + peer + " for " + metainfo.getName());
return false; // No need to announce BAD piece to peers. return false; // No need to announce BAD piece to peers.
} }

View File

@ -1976,6 +1976,7 @@ public class SnarkManager implements CompleteListener {
if (meta.getFiles() != null) if (meta.getFiles() != null)
buf.append('/'); buf.append('/');
buf.append("\">").append(base).append("</a>"); buf.append("\">").append(base).append("</a>");
if (snark.getDownloaded() > 0)
addMessageNoEscape(_("Download finished: {0}", buf.toString())); // + " (" + _("size: {0}B", DataHelper.formatSize2(len)) + ')'); addMessageNoEscape(_("Download finished: {0}", buf.toString())); // + " (" + _("size: {0}B", DataHelper.formatSize2(len)) + ')');
updateStatus(snark); updateStatus(snark);
} }