* i2psnark: Add some synchronization to prevent rare problem
      after restoring orphan piece
This commit is contained in:
zzz
2006-09-24 18:30:22 +00:00
committed by zzz
parent e8e8bac694
commit 373934c6e0
3 changed files with 25 additions and 18 deletions

View File

@ -523,6 +523,8 @@ class PeerState
// Check for adopting an orphaned partial piece // Check for adopting an orphaned partial piece
Request r = listener.getPeerPartial(bitfield); Request r = listener.getPeerPartial(bitfield);
if (r != null) { if (r != null) {
synchronized(this)
{
// Check that r not already in outstandingRequests // Check that r not already in outstandingRequests
int[] arr = getRequestedPieces(); int[] arr = getRequestedPieces();
boolean found = false; boolean found = false;
@ -540,6 +542,7 @@ class PeerState
return true; return true;
} }
} }
}
int nextPiece = listener.wantPiece(peer, bitfield); int nextPiece = listener.wantPiece(peer, bitfield);
if (_log.shouldLog(Log.DEBUG)) if (_log.shouldLog(Log.DEBUG))
_log.debug(peer + " want piece " + nextPiece); _log.debug(peer + " want piece " + nextPiece);

View File

@ -1,4 +1,8 @@
$Id: history.txt,v 1.522 2006-09-16 16:07:30 zzz Exp $ $Id: history.txt,v 1.523 2006-09-20 17:39:26 zzz Exp $
2006-09-24 zzz
* i2psnark: Add some synchronization to prevent rare problem
after restoring orphan piece
2006-09-20 zzz 2006-09-20 zzz
* i2psnark: Eliminate duplicate requests caused by i2p-bt's * i2psnark: Eliminate duplicate requests caused by i2p-bt's

View File

@ -15,9 +15,9 @@ import net.i2p.CoreVersion;
* *
*/ */
public class RouterVersion { public class RouterVersion {
public final static String ID = "$Revision: 1.459 $ $Date: 2006-09-16 16:07:28 $"; public final static String ID = "$Revision: 1.460 $ $Date: 2006-09-20 17:39:24 $";
public final static String VERSION = "0.6.1.25"; public final static String VERSION = "0.6.1.25";
public final static long BUILD = 6; public final static long BUILD = 7;
public static void main(String args[]) { public static void main(String args[]) {
System.out.println("I2P Router version: " + VERSION + "-" + BUILD); System.out.println("I2P Router version: " + VERSION + "-" + BUILD);
System.out.println("Router ID: " + RouterVersion.ID); System.out.println("Router ID: " + RouterVersion.ID);