diff options
author | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-06-07 14:39:04 +0200 |
---|---|---|
committer | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-06-07 14:39:04 +0200 |
commit | 1ca57e746b47f27f78d62f80e1a90879ae2d9549 (patch) | |
tree | 8dd0dbce8fa82c57d02159620e572488b39e61b2 /same/src/main/java/com/orbekk/same/Master.java | |
parent | 709b63e7eb100503df64e01eb98ab580e6f5c506 (diff) |
Change the timeout behavior of master proposers.
Unfortunately this makes some tests fail that will not be fixed at this
point.
Diffstat (limited to 'same/src/main/java/com/orbekk/same/Master.java')
-rw-r--r-- | same/src/main/java/com/orbekk/same/Master.java | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/same/src/main/java/com/orbekk/same/Master.java b/same/src/main/java/com/orbekk/same/Master.java index 815f12f..627ea04 100644 --- a/same/src/main/java/com/orbekk/same/Master.java +++ b/same/src/main/java/com/orbekk/same/Master.java @@ -214,15 +214,28 @@ public class Master { @Override public void run() { try { + logger.info("Starting master takeover."); sendTakeovers(); - getMostRecentState(); - updateParticipants(); - sendFullState(); - finishTakeover(); + if (!aborted.get()) { + getMostRecentState(); + } + if (!aborted.get()) { + updateParticipants(); + } + if (!aborted.get()) { + sendFullState(); + } + if (!aborted.get()) { + finishTakeover(); + } } catch (InterruptedException e) { // Abort master takeover. - logger.warn("Master takeover aborted: ", e); aborted.set(true); + Thread.currentThread().interrupt(); + } + + if (aborted.get()) { + logger.warn("Master takeover aborted."); } } } @@ -392,7 +405,7 @@ public class Master { this.masterId = masterId; MasterTakeover takeover = new MasterTakeover( state.getList(State.PARTICIPANTS), getMasterInfo()); - takeover.run(); + new Thread(takeover).start(); } public void updateRevision(long newRevision) { |