From fa96cffcbc0f9a1ace736ab72dc8b12cfcf52171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= Date: Mon, 30 Apr 2012 15:58:01 +0200 Subject: Make fields final in ResponseHandler. --- .../main/java/com/orbekk/paxos/MasterProposer.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/same/src/main/java/com/orbekk/paxos/MasterProposer.java b/same/src/main/java/com/orbekk/paxos/MasterProposer.java index eaca410..3343988 100644 --- a/same/src/main/java/com/orbekk/paxos/MasterProposer.java +++ b/same/src/main/java/com/orbekk/paxos/MasterProposer.java @@ -34,14 +34,14 @@ public class MasterProposer extends Thread { this.rpcf = rpcf; } - private class ResponseHandler implements RpcCallback { + private static class ResponseHandler implements RpcCallback { final int proposalNumber; final int numRequests; - AtomicInteger bestPromise = new AtomicInteger(); - AtomicInteger numPromises = new AtomicInteger(0); - AtomicInteger numResponses = new AtomicInteger(0); - AtomicInteger result = new AtomicInteger(); - CountDownLatch done = new CountDownLatch(1); + final AtomicInteger bestPromise = new AtomicInteger(); + final AtomicInteger numPromises = new AtomicInteger(0); + final AtomicInteger numResponses = new AtomicInteger(0); + final AtomicInteger result = new AtomicInteger(); + final CountDownLatch done = new CountDownLatch(1); public ResponseHandler(int proposalNumber, int numRequests) { this.proposalNumber = proposalNumber; @@ -56,12 +56,11 @@ public class MasterProposer extends Thread { if (result == proposalNumber) { numPromises.incrementAndGet(); } - while (true) { + boolean updated = false; + while (!updated) { int oldVal = bestPromise.get(); int update = Math.min(oldVal, result); - if (bestPromise.compareAndSet(oldVal, update)) { - break; - } + updated = bestPromise.compareAndSet(oldVal, update); } } checkDone(); -- cgit v1.2.3