summaryrefslogtreecommitdiff
path: root/same/src/main/java/com/orbekk/same/Master.java
diff options
context:
space:
mode:
authorKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-06-07 14:39:04 +0200
committerKjetil Ørbekk <kjetil.orbekk@gmail.com>2012-06-07 14:39:04 +0200
commit1ca57e746b47f27f78d62f80e1a90879ae2d9549 (patch)
tree8dd0dbce8fa82c57d02159620e572488b39e61b2 /same/src/main/java/com/orbekk/same/Master.java
parent709b63e7eb100503df64e01eb98ab580e6f5c506 (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.java25
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) {