From 44e055e6982f380d85f9492adee16defffac411c Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 20 Dec 2013 17:28:08 +0400 Subject: [PATCH] Explicit lock references replaced with capturing StorageManager as an outer instance --- .../jet/storage/LockBasedStorageManager.java | 49 +++++++++---------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/core/util.runtime/src/org/jetbrains/jet/storage/LockBasedStorageManager.java b/core/util.runtime/src/org/jetbrains/jet/storage/LockBasedStorageManager.java index a4db2d0f0ff..7b10cb5e84b 100644 --- a/core/util.runtime/src/org/jetbrains/jet/storage/LockBasedStorageManager.java +++ b/core/util.runtime/src/org/jetbrains/jet/storage/LockBasedStorageManager.java @@ -59,7 +59,7 @@ public class LockBasedStorageManager implements StorageManager { @NotNull Function1 compute, @NotNull ConcurrentMap map ) { - return new MapBasedMemoizedFunctionToNotNull(lock, map, compute); + return new MapBasedMemoizedFunctionToNotNull(map, compute); } @NotNull @@ -73,13 +73,13 @@ public class LockBasedStorageManager implements StorageManager { @NotNull Function1 compute, @NotNull ConcurrentMap map ) { - return new MapBasedMemoizedFunction(lock, map, compute); + return new MapBasedMemoizedFunction(map, compute); } @NotNull @Override public NotNullLazyValue createLazyValue(@NotNull Function0 computable) { - return new LockBasedNotNullLazyValue(lock, computable); + return new LockBasedNotNullLazyValue(computable); } @NotNull @@ -87,7 +87,7 @@ public class LockBasedStorageManager implements StorageManager { public NotNullLazyValue createRecursionTolerantLazyValue( @NotNull Function0 computable, @NotNull final T onRecursiveCall ) { - return new LockBasedNotNullLazyValue(lock, computable) { + return new LockBasedNotNullLazyValue(computable) { @Override protected T recursionDetected(boolean firstTime) { return onRecursiveCall; @@ -102,7 +102,7 @@ public class LockBasedStorageManager implements StorageManager { final Function1 onRecursiveCall, @NotNull final Function1 postCompute ) { - return new LockBasedNotNullLazyValue(lock, computable) { + return new LockBasedNotNullLazyValue(computable) { @Nullable @Override protected T recursionDetected(boolean firstTime) { @@ -122,13 +122,13 @@ public class LockBasedStorageManager implements StorageManager { @NotNull @Override public NullableLazyValue createNullableLazyValue(@NotNull Function0 computable) { - return new LockBasedLazyValue(lock, computable); + return new LockBasedLazyValue(computable); } @NotNull @Override public NullableLazyValue createRecursionTolerantNullableLazyValue(@NotNull Function0 computable, final T onRecursiveCall) { - return new LockBasedLazyValue(lock, computable) { + return new LockBasedLazyValue(computable) { @Override protected T recursionDetected(boolean firstTime) { return onRecursiveCall; @@ -141,7 +141,7 @@ public class LockBasedStorageManager implements StorageManager { public NullableLazyValue createNullableLazyValueWithPostCompute( @NotNull Function0 computable, @NotNull final Function1 postCompute ) { - return new LockBasedLazyValue(lock, computable) { + return new LockBasedLazyValue(computable) { @Override protected void postCompute(@Nullable T value) { postCompute.invoke(value); @@ -160,22 +160,20 @@ public class LockBasedStorageManager implements StorageManager { } } - private static class LockBasedLazyValue implements NullableLazyValue { + private enum NotValue { + NOT_COMPUTED, + COMPUTING, + RECURSION_WAS_DETECTED + } - private enum NotValue { - NOT_COMPUTED, - COMPUTING, - RECURSION_WAS_DETECTED - } + private class LockBasedLazyValue implements NullableLazyValue { - private final Lock lock; private final Function0 computable; @Nullable private volatile Object value = NotValue.NOT_COMPUTED; - public LockBasedLazyValue(@NotNull Lock lock, @NotNull Function0 computable) { - this.lock = lock; + public LockBasedLazyValue(@NotNull Function0 computable) { this.computable = computable; } @@ -237,10 +235,10 @@ public class LockBasedStorageManager implements StorageManager { } } - private static class LockBasedNotNullLazyValue extends LockBasedLazyValue implements NotNullLazyValue { + private class LockBasedNotNullLazyValue extends LockBasedLazyValue implements NotNullLazyValue { - public LockBasedNotNullLazyValue(@NotNull Lock lock, @NotNull Function0 computable) { - super(lock, computable); + public LockBasedNotNullLazyValue(@NotNull Function0 computable) { + super(computable); } @Override @@ -252,13 +250,11 @@ public class LockBasedStorageManager implements StorageManager { } } - private static class MapBasedMemoizedFunction implements MemoizedFunctionToNullable { - private final Lock lock; + private class MapBasedMemoizedFunction implements MemoizedFunctionToNullable { private final ConcurrentMap cache; private final Function1 compute; - public MapBasedMemoizedFunction(@NotNull Lock lock, @NotNull ConcurrentMap map, @NotNull Function1 compute) { - this.lock = lock; + public MapBasedMemoizedFunction(@NotNull ConcurrentMap map, @NotNull Function1 compute) { this.cache = map; this.compute = compute; } @@ -294,14 +290,13 @@ public class LockBasedStorageManager implements StorageManager { } } - private static class MapBasedMemoizedFunctionToNotNull extends MapBasedMemoizedFunction implements MemoizedFunctionToNotNull { + private class MapBasedMemoizedFunctionToNotNull extends MapBasedMemoizedFunction implements MemoizedFunctionToNotNull { public MapBasedMemoizedFunctionToNotNull( - @NotNull Lock lock, @NotNull ConcurrentMap map, @NotNull Function1 compute ) { - super(lock, map, compute); + super(map, compute); } @NotNull