[jbosscache-commits] JBoss Cache SVN: r7922 - in core/branches/flat/src/main/java/org/horizon: util/concurrent/locks/containers and 1 other directory.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Thu Mar 19 06:20:25 EDT 2009


Author: manik.surtani at jboss.com
Date: 2009-03-19 06:20:25 -0400 (Thu, 19 Mar 2009)
New Revision: 7922

Modified:
   core/branches/flat/src/main/java/org/horizon/lock/LockManagerImpl.java
   core/branches/flat/src/main/java/org/horizon/util/concurrent/locks/containers/AbstractPerEntryLockContainer.java
   core/branches/flat/src/main/java/org/horizon/util/concurrent/locks/containers/OwnableReentrantPerEntryLockContainer.java
   core/branches/flat/src/main/java/org/horizon/util/concurrent/locks/containers/ReentrantPerEntryLockContainer.java
Log:
HORIZON-40 - Create a lock-per-entry lock manager

Modified: core/branches/flat/src/main/java/org/horizon/lock/LockManagerImpl.java
===================================================================
--- core/branches/flat/src/main/java/org/horizon/lock/LockManagerImpl.java	2009-03-19 10:06:23 UTC (rev 7921)
+++ core/branches/flat/src/main/java/org/horizon/lock/LockManagerImpl.java	2009-03-19 10:20:25 UTC (rev 7922)
@@ -69,7 +69,7 @@
    public void startLockManager() {
       lockContainer = configuration.isUseLockStriping() ?
             transactionManager == null ? new ReentrantStripedLockContainer(configuration.getConcurrencyLevel()) : new OwnableReentrantStripedLockContainer(configuration.getConcurrencyLevel(), invocationContextContainer) :
-            transactionManager == null ? new ReentrantPerEntryLockContainer() : new OwnableReentrantPerEntryLockContainer(invocationContextContainer);
+            transactionManager == null ? new ReentrantPerEntryLockContainer(configuration.getConcurrencyLevel()) : new OwnableReentrantPerEntryLockContainer(configuration.getConcurrencyLevel(), invocationContextContainer);
    }
 
    public Object getLockOwner(InvocationContext ctx) {

Modified: core/branches/flat/src/main/java/org/horizon/util/concurrent/locks/containers/AbstractPerEntryLockContainer.java
===================================================================
--- core/branches/flat/src/main/java/org/horizon/util/concurrent/locks/containers/AbstractPerEntryLockContainer.java	2009-03-19 10:06:23 UTC (rev 7921)
+++ core/branches/flat/src/main/java/org/horizon/util/concurrent/locks/containers/AbstractPerEntryLockContainer.java	2009-03-19 10:20:25 UTC (rev 7922)
@@ -13,8 +13,12 @@
  */
 public abstract class AbstractPerEntryLockContainer implements LockContainer {
 
-   ConcurrentMap<Object, Lock> locks = new ConcurrentHashMap<Object, Lock>();
+   protected final ConcurrentMap<Object, Lock> locks;
 
+   protected AbstractPerEntryLockContainer(int concurrencyLevel) {
+      locks = new ConcurrentHashMap<Object, Lock>(16, .75f, concurrencyLevel);
+   }
+
    protected abstract Lock newLock();
 
    public final Lock getLock(Object key) {

Modified: core/branches/flat/src/main/java/org/horizon/util/concurrent/locks/containers/OwnableReentrantPerEntryLockContainer.java
===================================================================
--- core/branches/flat/src/main/java/org/horizon/util/concurrent/locks/containers/OwnableReentrantPerEntryLockContainer.java	2009-03-19 10:06:23 UTC (rev 7921)
+++ core/branches/flat/src/main/java/org/horizon/util/concurrent/locks/containers/OwnableReentrantPerEntryLockContainer.java	2009-03-19 10:20:25 UTC (rev 7922)
@@ -15,7 +15,8 @@
 
    private InvocationContextContainer icc;
 
-   public OwnableReentrantPerEntryLockContainer(InvocationContextContainer icc) {
+   public OwnableReentrantPerEntryLockContainer(int concurrencyLevel, InvocationContextContainer icc) {
+      super(concurrencyLevel);
       this.icc = icc;
    }
 

Modified: core/branches/flat/src/main/java/org/horizon/util/concurrent/locks/containers/ReentrantPerEntryLockContainer.java
===================================================================
--- core/branches/flat/src/main/java/org/horizon/util/concurrent/locks/containers/ReentrantPerEntryLockContainer.java	2009-03-19 10:06:23 UTC (rev 7921)
+++ core/branches/flat/src/main/java/org/horizon/util/concurrent/locks/containers/ReentrantPerEntryLockContainer.java	2009-03-19 10:20:25 UTC (rev 7922)
@@ -11,6 +11,10 @@
  */
 public class ReentrantPerEntryLockContainer extends AbstractPerEntryLockContainer {
 
+   public ReentrantPerEntryLockContainer(int concurrencyLevel) {
+      super(concurrencyLevel);
+   }
+
    protected Lock newLock() {
       return new ReentrantLock();
    }




More information about the jbosscache-commits mailing list