You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2013/08/08 18:33:55 UTC

[02/16] git commit: replace volatile regionCount w/ AtomicInteger

replace volatile regionCount w/ AtomicInteger


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f022354c
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f022354c
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f022354c

Branch: refs/heads/trunk
Commit: f022354cb44a15d034b3a28dec5d38cc97084faf
Parents: 23becce
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Aug 8 10:57:48 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Aug 8 10:57:48 2013 -0500

----------------------------------------------------------------------
 src/java/org/apache/cassandra/utils/SlabAllocator.java | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f022354c/src/java/org/apache/cassandra/utils/SlabAllocator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/SlabAllocator.java b/src/java/org/apache/cassandra/utils/SlabAllocator.java
index 6ff66f8..edd6f86 100644
--- a/src/java/org/apache/cassandra/utils/SlabAllocator.java
+++ b/src/java/org/apache/cassandra/utils/SlabAllocator.java
@@ -48,7 +48,7 @@ public class SlabAllocator extends Allocator
     private final static int MAX_CLONED_SIZE = 128 * 1024; // bigger than this don't go in the region
 
     private final AtomicReference<Region> currentRegion = new AtomicReference<Region>();
-    private volatile int regionCount = 0;
+    private final AtomicInteger regionCount = new AtomicInteger(0);
     private AtomicLong unslabbed = new AtomicLong(0);
 
     public ByteBuffer allocate(int size)
@@ -99,7 +99,7 @@ public class SlabAllocator extends Allocator
             {
                 // we won race - now we need to actually do the expensive allocation step
                 region.init();
-                regionCount++;
+                regionCount.incrementAndGet();
                 logger.trace("{} regions now allocated in {}", regionCount, this);
                 return region;
             }
@@ -113,7 +113,7 @@ public class SlabAllocator extends Allocator
      */
     public long getMinimumSize()
     {
-        return unslabbed.get() + (regionCount - 1) * (long)REGION_SIZE;
+        return unslabbed.get() + (regionCount.get() - 1) * (long)REGION_SIZE;
     }
 
     /**
@@ -121,7 +121,7 @@ public class SlabAllocator extends Allocator
      */
     public long getMaximumSize()
     {
-        return unslabbed.get() + regionCount * (long)REGION_SIZE;
+        return unslabbed.get() + regionCount.get() * (long)REGION_SIZE;
     }
 
     /**