We can't be refreshing the peers that we just shut down because they
stopped updating. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6642 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1078,10 +1078,16 @@ public abstract class PeerManager
|
|||||||
@Override
|
@Override
|
||||||
public void handleSuccess () {
|
public void handleSuccess () {
|
||||||
// refresh peers with loaded records
|
// refresh peers with loaded records
|
||||||
for (NodeRecord record : _nodes.values()) {
|
long now = System.currentTimeMillis();
|
||||||
|
for (Iterator<NodeRecord> it = _nodes.values().iterator(); it.hasNext(); ) {
|
||||||
|
NodeRecord record = it.next();
|
||||||
if (record.nodeName.equals(_nodeName)) {
|
if (record.nodeName.equals(_nodeName)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if ((now - record.lastUpdated.getTime()) > PeerNode.STALE_INTERVAL) {
|
||||||
|
it.remove();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
refreshPeer(record);
|
refreshPeer(record);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -1090,11 +1096,9 @@ public abstract class PeerManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
// remove peers for which we no longer have up-to-date records
|
// remove peers for which we no longer have up-to-date records
|
||||||
long now = System.currentTimeMillis();
|
|
||||||
for (Iterator<PeerNode> it = _peers.values().iterator(); it.hasNext(); ) {
|
for (Iterator<PeerNode> it = _peers.values().iterator(); it.hasNext(); ) {
|
||||||
PeerNode peer = it.next();
|
PeerNode peer = it.next();
|
||||||
NodeRecord record = _nodes.get(peer.getNodeName());
|
if (!_nodes.containsKey(peer.getNodeName())) {
|
||||||
if (record == null || (now - record.lastUpdated.getTime()) > PeerNode.STALE_INTERVAL) {
|
|
||||||
peer.shutdown();
|
peer.shutdown();
|
||||||
it.remove();
|
it.remove();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user