From 3c5223650dfb67c397b65f6aef3613f13c2f86bc Mon Sep 17 00:00:00 2001 From: ortigali Date: Mon, 19 Dec 2016 12:02:32 +0500 Subject: [PATCH] make maxAllowedWait timeout be dilated #21996 --- .../javadsl/cookbook/RecipeGlobalRateLimit.java | 11 +++++------ .../docs/stream/cookbook/RecipeGlobalRateLimit.scala | 5 +++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/akka-docs/rst/java/code/docs/stream/javadsl/cookbook/RecipeGlobalRateLimit.java b/akka-docs/rst/java/code/docs/stream/javadsl/cookbook/RecipeGlobalRateLimit.java index e79412580a..17880af96b 100644 --- a/akka-docs/rst/java/code/docs/stream/javadsl/cookbook/RecipeGlobalRateLimit.java +++ b/akka-docs/rst/java/code/docs/stream/javadsl/cookbook/RecipeGlobalRateLimit.java @@ -5,7 +5,6 @@ package docs.stream.javadsl.cookbook; import akka.NotUsed; import akka.actor.*; -import akka.dispatch.Mapper; import akka.japi.pf.ReceiveBuilder; import akka.pattern.PatternsCS; import akka.stream.*; @@ -18,7 +17,6 @@ import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import scala.PartialFunction; -import scala.concurrent.Future; import scala.concurrent.duration.Duration; import scala.concurrent.duration.FiniteDuration; import scala.runtime.BoxedUnit; @@ -121,11 +119,12 @@ public class RecipeGlobalRateLimit extends RecipeTest { private void releaseWaiting() { final List toBeReleased = new ArrayList<>(permitTokens); - for (int i = 0; i < permitTokens && i < waitQueue.size(); i++) { - toBeReleased.add(waitQueue.remove(i)); + for (Iterator it = waitQueue.iterator(); permitTokens > 0 && it.hasNext();) { + toBeReleased.add(it.next()); + it.remove(); + permitTokens --; } - permitTokens -= toBeReleased.size(); toBeReleased.stream().forEach(ref -> ref.tell(MAY_PASS, self())); if (permitTokens > 0) { context().become(open()); @@ -186,7 +185,7 @@ public class RecipeGlobalRateLimit extends RecipeTest { } }; - final FiniteDuration twoSeconds = Duration.create(2, TimeUnit.SECONDS); + final FiniteDuration twoSeconds = (FiniteDuration) dilated(Duration.create(2, TimeUnit.SECONDS)); final Sink> sink = TestSink.probe(system); final TestSubscriber.Probe probe = diff --git a/akka-docs/rst/scala/code/docs/stream/cookbook/RecipeGlobalRateLimit.scala b/akka-docs/rst/scala/code/docs/stream/cookbook/RecipeGlobalRateLimit.scala index 9fbe45002a..89615b5a17 100644 --- a/akka-docs/rst/scala/code/docs/stream/cookbook/RecipeGlobalRateLimit.scala +++ b/akka-docs/rst/scala/code/docs/stream/cookbook/RecipeGlobalRateLimit.scala @@ -5,6 +5,7 @@ import akka.actor.{ Props, ActorRef, Actor } import akka.stream.ClosedShape import akka.stream.scaladsl._ import akka.stream.testkit._ +import akka.testkit._ import scala.collection.immutable import scala.concurrent.duration._ @@ -94,8 +95,8 @@ class RecipeGlobalRateLimit extends RecipeSpec { // Use a large period and emulate the timer by hand instead val limiter = system.actorOf(Limiter.props(2, 100.days, 1), "limiter") - val source1 = Source.fromIterator(() => Iterator.continually("E1")).via(limitGlobal(limiter, 2.seconds)) - val source2 = Source.fromIterator(() => Iterator.continually("E2")).via(limitGlobal(limiter, 2.seconds)) + val source1 = Source.fromIterator(() => Iterator.continually("E1")).via(limitGlobal(limiter, 2.seconds.dilated)) + val source2 = Source.fromIterator(() => Iterator.continually("E2")).via(limitGlobal(limiter, 2.seconds.dilated)) val probe = TestSubscriber.manualProbe[String]()