Iterate over a snapshot of the values so that we avoid concurrent modification.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4769 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -525,7 +525,7 @@ public class PeerManager
|
||||
public void clientUnsubscribedFromNode (int cloid)
|
||||
{
|
||||
_suboids.remove(cloid);
|
||||
for (LockHandler handler : _locks.values()) {
|
||||
for (LockHandler handler : _locks.values().toArray(new LockHandler[_locks.size()])) {
|
||||
if (handler.getNodeName().equals(_nodeName)) {
|
||||
handler.clientUnsubscribed(cloid);
|
||||
}
|
||||
@@ -742,7 +742,7 @@ public class PeerManager
|
||||
protected void peerDidLogoff (PeerNode peer)
|
||||
{
|
||||
// clear any locks held by that peer
|
||||
for (LockHandler handler : _locks.values()) {
|
||||
for (LockHandler handler : _locks.values().toArray(new LockHandler[_locks.size()])) {
|
||||
if (handler.getNodeName().equals(peer.getNodeName())) {
|
||||
handler.clientDidLogoff();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user