diff options
author | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-04-30 15:58:01 +0200 |
---|---|---|
committer | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-04-30 15:58:01 +0200 |
commit | fa96cffcbc0f9a1ace736ab72dc8b12cfcf52171 (patch) | |
tree | 9645761269421c512cc75290294576f8f8681603 /same/src/main/java | |
parent | 058f9ba7650927d755cf408027dd19f78c92b7c2 (diff) |
Make fields final in ResponseHandler.
Diffstat (limited to 'same/src/main/java')
-rw-r--r-- | same/src/main/java/com/orbekk/paxos/MasterProposer.java | 19 |
1 files 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<PaxosResponse> { + private static class ResponseHandler implements RpcCallback<PaxosResponse> { 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(); |