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);