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
public void handleSuccess () {
// 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)) {
continue;
}
if ((now - record.lastUpdated.getTime()) > PeerNode.STALE_INTERVAL) {
it.remove();
continue;
}
try {
refreshPeer(record);
} catch (Exception e) {
@@ -1090,11 +1096,9 @@ public abstract class PeerManager
}
// 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(); ) {
PeerNode peer = it.next();
NodeRecord record = _nodes.get(peer.getNodeName());
if (record == null || (now - record.lastUpdated.getTime()) > PeerNode.STALE_INTERVAL) {
if (!_nodes.containsKey(peer.getNodeName())) {
peer.shutdown();
it.remove();
}