mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 16:18:03 +02:00
Clear accepted/bestPromise .winner when disconnected.
This commit is contained in:
parent
8b27b90566
commit
b6472217c4
2 changed files with 3 additions and 5 deletions
|
@ -1,6 +1,6 @@
|
||||||
(function () {
|
(function () {
|
||||||
// See tests/performance/tribbles.js
|
// See tests/performance/tribbles.js
|
||||||
Script.include("../libraries/virtualBaton.40.js");
|
Script.include("../libraries/virtualBaton.41.js");
|
||||||
var dimensions, oldColor, entityID,
|
var dimensions, oldColor, entityID,
|
||||||
editRate = 60,
|
editRate = 60,
|
||||||
moveRate = 1,
|
moveRate = 1,
|
|
@ -219,10 +219,7 @@ function virtualBatonf(options) {
|
||||||
var response = {proposalNumber: data.number, proposerId: data.proposerId};
|
var response = {proposalNumber: data.number, proposerId: data.proposerId};
|
||||||
if (betterNumber(data, bestProposal)) {
|
if (betterNumber(data, bestProposal)) {
|
||||||
bestProposal = data;
|
bestProposal = data;
|
||||||
// For stability, we don't let any one proposer rule out a disconnnected winner.
|
if (accepted.winner) {
|
||||||
// If someone notices that a winner has disconnected (in their recheckWatchdog),
|
|
||||||
// they call for a new election. To remain chosen, a quorum need to confirm here.
|
|
||||||
if (accepted.winner && connectionTest(accepted.winner)) {
|
|
||||||
response.number = accepted.number;
|
response.number = accepted.number;
|
||||||
response.winner = accepted.winner;
|
response.winner = accepted.winner;
|
||||||
}
|
}
|
||||||
|
@ -333,6 +330,7 @@ function virtualBatonf(options) {
|
||||||
exports.recheckWatchdog = timers.setInterval(function recheck() {
|
exports.recheckWatchdog = timers.setInterval(function recheck() {
|
||||||
var holder = acceptedId(); // If we're waiting and we notice the holder is gone, ...
|
var holder = acceptedId(); // If we're waiting and we notice the holder is gone, ...
|
||||||
if (holder && claimCallback && !electionWatchdog && !connectionTest(holder)) {
|
if (holder && claimCallback && !electionWatchdog && !connectionTest(holder)) {
|
||||||
|
accepted.winner = bestPromise.winner = null;
|
||||||
propose(); // ... propose an election.
|
propose(); // ... propose an election.
|
||||||
}
|
}
|
||||||
}, recheckInterval);
|
}, recheckInterval);
|
Loading…
Reference in a new issue