From fdbfbe35d98b33de04c3df99011a5397d67e814d Mon Sep 17 00:00:00 2001 From: Viktor Klang Date: Mon, 11 Oct 2010 19:15:14 +0200 Subject: [PATCH] Switching to volatile int instead of AtomicInteger until ticket 384 is done --- akka-actor/src/main/scala/actor/ActorRef.scala | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/akka-actor/src/main/scala/actor/ActorRef.scala b/akka-actor/src/main/scala/actor/ActorRef.scala index 3c112ce2ff..5548d030ff 100644 --- a/akka-actor/src/main/scala/actor/ActorRef.scala +++ b/akka-actor/src/main/scala/actor/ActorRef.scala @@ -644,7 +644,8 @@ class LocalActorRef private[akka] ( private[akka] lazy val _linkedActors = new ConcurrentHashMap[Uuid, ActorRef] @volatile private[akka] var _supervisor: Option[ActorRef] = None - private val maxNrOfRetriesCount = new AtomicInteger(0) + @volatile + private var maxNrOfRetriesCount: Int = 0 @volatile private var restartsWithinTimeRangeTimestamp: Long = 0L @volatile @@ -1041,11 +1042,13 @@ class LocalActorRef private[akka] ( false } else if (withinTimeRange.isEmpty) { // restrict number of restarts - maxNrOfRetriesCount.incrementAndGet > maxNrOfRetries.get + maxNrOfRetriesCount += 1 //Increment number of retries + maxNrOfRetriesCount > maxNrOfRetries.get } else { // cannot restart more than N within M timerange + maxNrOfRetriesCount += 1 //Increment number of retries val windowStart = restartsWithinTimeRangeTimestamp val now = System.currentTimeMillis - val retries = maxNrOfRetriesCount.incrementAndGet + val retries = maxNrOfRetriesCount //We are within the time window if it isn't the first restart, or if the window hasn't closed val insideWindow = if (windowStart == 0) false @@ -1059,7 +1062,7 @@ class LocalActorRef private[akka] ( restartsWithinTimeRangeTimestamp = now if (windowStart != 0 && !insideWindow) //Reset number of restarts if window has expired - maxNrOfRetriesCount.set(1) + maxNrOfRetriesCount = 1 unrestartable }