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:
Andrzej Kapolka
2011-05-20 03:21:27 +00:00
parent 3a2d9d4aee
commit dbb6d5ce22
@@ -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();
} }