[jbosscache-commits] JBoss Cache SVN: r8223 - core/trunk/src/main/java/org/jboss/cache.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Mon Sep 14 12:13:00 EDT 2009


Author: bstansberry at jboss.com
Date: 2009-09-14 12:12:59 -0400 (Mon, 14 Sep 2009)
New Revision: 8223

Modified:
   core/trunk/src/main/java/org/jboss/cache/PessimisticUnversionedNode.java
Log:
[JBCACHE-1543] Reduce synchronization on PessimisticUnversionedNode

Modified: core/trunk/src/main/java/org/jboss/cache/PessimisticUnversionedNode.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/PessimisticUnversionedNode.java	2009-09-11 19:13:44 UTC (rev 8222)
+++ core/trunk/src/main/java/org/jboss/cache/PessimisticUnversionedNode.java	2009-09-14 16:12:59 UTC (rev 8223)
@@ -53,7 +53,7 @@
     * Lock manager that manages locks to be acquired when accessing the node inside a transaction. Lazy set just in case
     * locking is not needed.
     */
-   protected transient IdentityLock lock = null;
+   protected transient volatile IdentityLock lock = null;
    protected LockStrategyFactory lockStrategyFactory;
    CommandsFactory commandsFactory;
    protected NodeFactory<K, V> nodeFactory;
@@ -110,7 +110,11 @@
    @Override
    public IdentityLock getLock()
    {
-      initLock();
+      // this.lock is volatile, so double-checked locking is ok
+      if (lock == null)
+      {
+         initLock();
+      }
       return lock;
    }
 



More information about the jbosscache-commits mailing list