From c2ebf2884bb2be02a29c1c596ce3b1777eb2bb2d Mon Sep 17 00:00:00 2001 From: Par Winzell Date: Mon, 13 Sep 2010 17:35:23 +0000 Subject: [PATCH] Ray points out this can usefully be an AtomicInteger. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6155 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../com/threerings/presents/peer/server/PeerManager.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/java/com/threerings/presents/peer/server/PeerManager.java b/src/java/com/threerings/presents/peer/server/PeerManager.java index bda69c99a..1c2ea1887 100644 --- a/src/java/com/threerings/presents/peer/server/PeerManager.java +++ b/src/java/com/threerings/presents/peer/server/PeerManager.java @@ -25,6 +25,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.io.ByteArrayInputStream; @@ -504,7 +505,7 @@ public abstract class PeerManager final Map results = Maps.newHashMap(); final Map failures = Maps.newHashMap(); - final Set completedNodes = Sets.newHashSet(); + final AtomicInteger completedNodes = new AtomicInteger(); for (final String node : nodes) { invokeNodeRequest(node, requestBytes, new InvocationService.ResultListener() { public void requestProcessed (Object result) { @@ -519,8 +520,7 @@ public abstract class PeerManager nodeDone(node); } protected void nodeDone (String node) { - completedNodes.add(node); - if (nodes.size() == completedNodes.size()) { + if (completedNodes.incrementAndGet() == nodes.size()) { // if all nodes have responded, let caller know listener.requestsProcessed(new NodeRequestsResultImpl(results, failures)); }