get rid of contended read lock since TimedReference already synchronized
authorAlexey Kudravtsev <cdr@intellij.com>
Mon, 9 Aug 2010 10:36:01 +0000 (14:36 +0400)
committerAlexey Kudravtsev <cdr@intellij.com>
Mon, 9 Aug 2010 10:44:19 +0000 (14:44 +0400)
platform/lang-impl/src/com/intellij/psi/impl/PsiCachedValueImpl.java
platform/platform-impl/src/com/intellij/util/CachedValueBase.java
platform/platform-impl/src/com/intellij/util/CachedValueImpl.java
platform/platform-impl/src/com/intellij/util/ParameterizedCachedValueImpl.java

index e301e75b77fd60e2ba47717913134342356f691b..d979a469ed497114760e0d881c41af15ed2ea7f4 100644 (file)
@@ -19,10 +19,9 @@ package com.intellij.psi.impl;
 import com.intellij.psi.PsiManager;
 import com.intellij.psi.util.CachedValue;
 import com.intellij.psi.util.CachedValueProvider;
-import com.intellij.util.ObjectUtils;
 import org.jetbrains.annotations.Nullable;
 
-import static com.intellij.util.ObjectUtils.*;
+import static com.intellij.util.ObjectUtils.NULL;
 
 /**
  * @author Dmitry Avdeev
@@ -37,16 +36,9 @@ public class PsiCachedValueImpl<T> extends PsiCachedValue<T> implements CachedVa
   @Nullable
   public T getValue() {
 
-    r.lock();
-
-    T value;
-    try {
-      value = getUpToDateOrNull();
-      if (value != null) {
-        return value == NULL ? null : value;
-      }
-    } finally {
-      r.unlock();
+    T value = getUpToDateOrNull();
+    if (value != null) {
+      return value == NULL ? null : value;
     }
 
     w.lock();
index 13edf8142a59a2dceb4c84abbc631456eb4a04ff..80887a24de5b85e2d119f93b925d008f5b42179e 100644 (file)
@@ -101,14 +101,7 @@ public abstract class CachedValueBase<T> {
   }
 
   public boolean hasUpToDateValue() {
-    r.lock();
-
-    try {
-      return getUpToDateOrNull() != null;
-    }
-    finally {
-      r.unlock();
-    }
+    return getUpToDateOrNull() != null;
   }
 
   @Nullable
index aef384fae2d78cc09b5ff287d4700257fe07a1be..52386ca76fd9971cf743d48f929cd231e9c26762 100644 (file)
@@ -41,16 +41,9 @@ public abstract class CachedValueImpl<T> extends CachedValueBase<T> implements C
   @Nullable
   public T getValue() {
 
-    r.lock();
-
-    T value;
-    try {
-      value = getUpToDateOrNull();
-      if (value != null) {
-        return value == ObjectUtils.NULL ? null : value;
-      }
-    } finally {
-      r.unlock();
+    T value = getUpToDateOrNull();
+    if (value != null) {
+      return value == ObjectUtils.NULL ? null : value;
     }
 
     w.lock();
index 32aa6f157f113211e494bd5bcab1d3e66496a71a..70b48759ed79c8a75a2dfd22724363f5d9977eda 100644 (file)
@@ -43,16 +43,9 @@ public abstract class ParameterizedCachedValueImpl<T,P> extends CachedValueBase<
 
   @Nullable
   public T getValue(P param) {
-    r.lock();
-
-    T value;
-    try {
-      value = getUpToDateOrNull();
-      if (value != null) {
-        return value == NULL ? null : value;
-      }
-    } finally {
-      r.unlock();
+    T value = getUpToDateOrNull();
+    if (value != null) {
+      return value == NULL ? null : value;
     }
 
     w.lock();