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 2011/07/30 04:29:33 UTC

svn commit: r1152416 - in /cassandra/trunk: src/java/org/apache/cassandra/cache/FreeableMemory.java src/java/org/apache/cassandra/cache/SerializingCache.java test/unit/org/apache/cassandra/cache/CacheProviderTest.java

Author: jbellis
Date: Sat Jul 30 02:29:32 2011
New Revision: 1152416

URL: http://svn.apache.org/viewvc?rev=1152416&view=rev
Log:
create FM objects w/ reference count of one
patch by jbellis

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/cache/FreeableMemory.java
    cassandra/trunk/src/java/org/apache/cassandra/cache/SerializingCache.java
    cassandra/trunk/test/unit/org/apache/cassandra/cache/CacheProviderTest.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/cache/FreeableMemory.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cache/FreeableMemory.java?rev=1152416&r1=1152415&r2=1152416&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cache/FreeableMemory.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cache/FreeableMemory.java Sat Jul 30 02:29:32 2011
@@ -28,14 +28,17 @@ import com.sun.jna.Memory;
 
 public class FreeableMemory extends Memory
 {
-    AtomicInteger references = new AtomicInteger(0);
+    AtomicInteger references = new AtomicInteger(1);
 
     public FreeableMemory(long size)
     {
         super(size);
     }
 
-    /** @return true if we succeed in referencing before the reference count reaches zero */
+    /**
+     * @return true if we succeed in referencing before the reference count reaches zero.
+     * (A FreeableMemory object is created with a reference count of one.)
+     */
     public boolean reference()
     {
         while (true)

Modified: cassandra/trunk/src/java/org/apache/cassandra/cache/SerializingCache.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cache/SerializingCache.java?rev=1152416&r1=1152415&r2=1152416&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cache/SerializingCache.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cache/SerializingCache.java Sat Jul 30 02:29:32 2011
@@ -155,7 +155,6 @@ public class SerializingCache<K, V> impl
         if (mem == null)
             return; // out of memory.  never mind.
 
-        mem.reference();
         FreeableMemory old = map.put(key, mem);
         if (old != null)
             old.unreference();

Modified: cassandra/trunk/test/unit/org/apache/cassandra/cache/CacheProviderTest.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/cache/CacheProviderTest.java?rev=1152416&r1=1152415&r2=1152416&view=diff
==============================================================================
--- cassandra/trunk/test/unit/org/apache/cassandra/cache/CacheProviderTest.java (original)
+++ cassandra/trunk/test/unit/org/apache/cassandra/cache/CacheProviderTest.java Sat Jul 30 02:29:32 2011
@@ -48,6 +48,8 @@ public class CacheProviderTest extends S
     private void simpleCase(ColumnFamily cf, ICache<String, ColumnFamily> cache)
     {
         cache.put(key1, cf);
+        assert cache.get(key1) != null;
+
         assertDigests(cache.get(key1), cf);
         cache.put(key2, cf);
         cache.put(key3, cf);