diff --git a/examples/libraries/virtualBaton.js b/examples/libraries/virtualBaton.js index 63f96a5c1e..319cae006b 100644 --- a/examples/libraries/virtualBaton.js +++ b/examples/libraries/virtualBaton.js @@ -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... var nNack = 0, previousNSubscribers = 0, lastGathering = 0, thisTimeout = electionTimeout; 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 - // the same as the number of clients! - // - // 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) - // + nNack reported in the previous round. - // - // 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 - // the virtualBaton is supposed to avoid. Therefore we need to allow 'nack' to gather stragglers. + // // 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! + // // + // // 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) + // // + nNack reported in the previous round. + // // + // // 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 + // // the virtualBaton is supposed to avoid. Therefore we need to allow 'nack' to gather stragglers. - var now = Date.now(), elapsed = now - lastGathering; - if (elapsed >= thisTimeout) { - previousNSubscribers = Math.max(nPromises, nAccepted) + nNack; - lastGathering = now; - } // ...otherwise we use the previous value unchanged. + // var now = Date.now(), elapsed = now - lastGathering; + // if (elapsed >= thisTimeout) { + // previousNSubscribers = Math.max(nPromises, nAccepted) + nNack; + // lastGathering = now; + // } // ...otherwise we use the previous value unchanged. - // 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. - 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. - previousNSubscribers = LARGE_INTEGER; - } - return previousNSubscribers; + // // 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. + // 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. + // previousNSubscribers = LARGE_INTEGER; + // } + // return previousNSubscribers; + print("EBL NUMBER SUBSCRIBERS ", AvatarList.getAvatarIdentifiers().length); + return AvatarList.getAvatarIdentifiers().length; } // MAIN ALGORITHM diff --git a/examples/tests/batonSoundEntityTest/batonSoundTestEntityScript.js b/examples/tests/batonSoundEntityTest/batonSoundTestEntityScript.js index 38c3e0058f..96381d8d13 100644 --- a/examples/tests/batonSoundEntityTest/batonSoundTestEntityScript.js +++ b/examples/tests/batonSoundEntityTest/batonSoundTestEntityScript.js @@ -1,6 +1,6 @@ (function() { - Script.include("../../libraries/virtualBaton.js"); + Script.include("../../libraries/virtualBaton.js?v2"); var baton; var iOwn = false; @@ -30,7 +30,7 @@ // We already have our injector so just restart it _this.soundInjector.restart(); } - print("EBL TAKING OVER THE SOUND") + print("EBL ") Entities.editEntity(_this.batonDebugModel, {visible: true}); _this.playSoundInterval = Script.setInterval(function() { // print("EBL PLAY THE SOUND");