hardcoded num avatars

This commit is contained in:
ericrius1 2016-03-22 10:12:44 -07:00
parent 130eb6b619
commit f043b27a56

View file

@ -145,30 +145,32 @@ function virtualBatonf(options) {
// It would be great if we had a way to know how many subscribers our channel has. Failing that... // It would be great if we had a way to know how many subscribers our channel has. Failing that...
var nNack = 0, previousNSubscribers = 0, lastGathering = 0, thisTimeout = electionTimeout; var nNack = 0, previousNSubscribers = 0, lastGathering = 0, thisTimeout = electionTimeout;
function nSubscribers() { // Answer the number of subscribers. function nSubscribers() { // Answer the number of subscribers.
// To find nQuorum, we need to know how many scripts are being run using this batonName, which isn't // // To find nQuorum, we need to know how many scripts are being run using this batonName, which isn't
// the same as the number of clients! // // the same as the number of clients!
// //
// If we overestimate by too much, we may fail to reach consensus, which triggers a new // // If we overestimate by too much, we may fail to reach consensus, which triggers a new
// election proposal, so we take the number of acceptors to be the max(nPromises, nAccepted) // // election proposal, so we take the number of acceptors to be the max(nPromises, nAccepted)
// + nNack reported in the previous round. // // + nNack reported in the previous round.
// //
// If we understimate by too much, there can be different pockets on the Internet that each // // If we understimate by too much, there can be different pockets on the Internet that each
// believe they have agreement on different holders of the baton, which is precisely what // // believe they have agreement on different holders of the baton, which is precisely what
// the virtualBaton is supposed to avoid. Therefore we need to allow 'nack' to gather stragglers. // // the virtualBaton is supposed to avoid. Therefore we need to allow 'nack' to gather stragglers.
var now = Date.now(), elapsed = now - lastGathering; // var now = Date.now(), elapsed = now - lastGathering;
if (elapsed >= thisTimeout) { // if (elapsed >= thisTimeout) {
previousNSubscribers = Math.max(nPromises, nAccepted) + nNack; // previousNSubscribers = Math.max(nPromises, nAccepted) + nNack;
lastGathering = now; // lastGathering = now;
} // ...otherwise we use the previous value unchanged. // } // ...otherwise we use the previous value unchanged.
// On startup, we do one proposal that we cannot possibly close, so that we'll // // On startup, we do one proposal that we cannot possibly close, so that we'll
// lock things up for the full electionTimeout to gather responses. // // lock things up for the full electionTimeout to gather responses.
if (!previousNSubscribers) { // if (!previousNSubscribers) {
var LARGE_INTEGER = Number.MAX_SAFE_INTEGER || (-1 >>> 1); // QT doesn't define the ECMA constant. Max int will do for our purposes. // var LARGE_INTEGER = Number.MAX_SAFE_INTEGER || (-1 >>> 1); // QT doesn't define the ECMA constant. Max int will do for our purposes.
previousNSubscribers = LARGE_INTEGER; // previousNSubscribers = LARGE_INTEGER;
} // }
return previousNSubscribers; // return previousNSubscribers;
print("EBL NUMBER SUBSCRIBERS ", AvatarList.getAvatarIdentifiers().length);
return AvatarList.getAvatarIdentifiers().length;
} }
// MAIN ALGORITHM // MAIN ALGORITHM