You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by et...@apache.org on 2008/10/30 19:03:49 UTC
svn commit: r709218 -
/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java
Author: etnu
Date: Thu Oct 30 11:03:48 2008
New Revision: 709218
URL: http://svn.apache.org/viewvc?rev=709218&view=rev
Log:
Switched manual locking to ConcurrentHashMap since it seems to perform better anyway and is less error prone.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java?rev=709218&r1=709217&r2=709218&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/GadgetFeatureRegistry.java Thu Oct 30 11:03:48 2008
@@ -30,8 +30,6 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.logging.Logger;
/**
@@ -49,8 +47,7 @@
// Caches the transitive dependencies to enable faster lookups.
private final Map<Collection<String>, Collection<GadgetFeature>> cache
- = Maps.newHashMap();
- private final ReadWriteLock cacheLock = new ReentrantReadWriteLock();
+ = Maps.newConcurrentHashMap();
private boolean graphComplete = false;
@@ -133,9 +130,7 @@
}
// We use the cache only for situations where all needed are available.
// if any are missing, the result won't be cached.
- cacheLock.readLock().lock();
Collection<GadgetFeature> libCache = cache.get(needed);
- cacheLock.readLock().unlock();
if (libCache != null) {
return libCache;
}
@@ -150,9 +145,7 @@
}
}
if (unsupported == null || unsupported.isEmpty()) {
- cacheLock.writeLock().lock();
cache.put(needed, Collections.unmodifiableList(ret));
- cacheLock.writeLock().unlock();
}
return ret;
}