summaryrefslogtreecommitdiff
path: root/same/src/main/java/com/orbekk/paxos/PaxosServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'same/src/main/java/com/orbekk/paxos/PaxosServiceImpl.java')
-rw-r--r--same/src/main/java/com/orbekk/paxos/PaxosServiceImpl.java14
1 files changed, 7 insertions, 7 deletions
diff --git a/same/src/main/java/com/orbekk/paxos/PaxosServiceImpl.java b/same/src/main/java/com/orbekk/paxos/PaxosServiceImpl.java
index 1e8387e..3ecf523 100644
--- a/same/src/main/java/com/orbekk/paxos/PaxosServiceImpl.java
+++ b/same/src/main/java/com/orbekk/paxos/PaxosServiceImpl.java
@@ -17,36 +17,36 @@ public class PaxosServiceImpl implements PaxosService {
}
@Override
- public synchronized boolean propose(String clientUrl,
+ public synchronized int propose(String clientUrl,
int proposalNumber) {
if (proposalNumber > highestPromise) {
- highestPromise = proposalNumber;
logger.info(tag + "propose({}, {}) = accepted",
new Object[]{clientUrl, proposalNumber});
- return true;
+ highestPromise = proposalNumber;
+ return highestPromise;
} else {
logger.info(tag + "propose({}, {}) = rejected " +
"(promised: {})",
new Object[]{clientUrl, proposalNumber,
highestPromise});
- return false;
+ return -highestPromise;
}
}
@Override
- public synchronized boolean acceptRequest(String clientUrl,
+ public synchronized int acceptRequest(String clientUrl,
int proposalNumber) {
if (proposalNumber == highestPromise) {
logger.info(tag + "acceptRequest({}, {}) = accepted",
new Object[]{clientUrl, proposalNumber});
highestAcceptedValue = proposalNumber;
- return true;
+ return highestAcceptedValue;
} else {
logger.info(tag + "acceptRequest({}, {}) = rejected " +
"(promise={})",
new Object[]{clientUrl, proposalNumber,
highestPromise});
- return false;
+ return -highestPromise;
}
}
}