summaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2017-09-25 15:05:40 +0200
committerValerij Fredriksen <valerijf@oath.com>2017-09-25 15:05:40 +0200
commitbaaf967996c4442c9dd6092e4d969fb27e9e17fb (patch)
tree72b1e4b0dc27b98bfebc3878af94f5db0ce02854 /vespajlib
parenta7652dde60ebaca99cfebe3b84c7b3db62027bfb (diff)
Rename to lockWhile, rename arguments
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/src/main/java/com/yahoo/concurrent/classlock/ClassLocking.java16
1 files changed, 8 insertions, 8 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/concurrent/classlock/ClassLocking.java b/vespajlib/src/main/java/com/yahoo/concurrent/classlock/ClassLocking.java
index 61e6850ee2e..a6347d9fb14 100644
--- a/vespajlib/src/main/java/com/yahoo/concurrent/classlock/ClassLocking.java
+++ b/vespajlib/src/main/java/com/yahoo/concurrent/classlock/ClassLocking.java
@@ -2,7 +2,7 @@ package com.yahoo.concurrent.classlock;
import java.util.HashMap;
import java.util.Map;
-import java.util.function.Supplier;
+import java.util.function.BooleanSupplier;
/**
* @author valerijf
@@ -11,18 +11,18 @@ public class ClassLocking {
private final Map<Class<?>, ClassLock> classLocks = new HashMap<>();
public synchronized ClassLock lock(Class<?> clazz) {
- return tryLock(clazz, () -> true);
+ return lockWhile(clazz, () -> true);
}
- public synchronized ClassLock tryLock(Class<?> clazz, Supplier<Boolean> continueRetrying) {
+ public synchronized ClassLock lockWhile(Class<?> clazz, BooleanSupplier interruptCondition) {
while(classLocks.containsKey(clazz)) {
try {
wait();
- } catch (InterruptedException ignored) {
- if (! continueRetrying.get()) {
- throw new LockInterruptException();
- }
- }
+ } catch (InterruptedException ignored) { }
+ }
+
+ if (! interruptCondition.getAsBoolean()) {
+ throw new LockInterruptException();
}
ClassLock classLock = new ClassLock(this, clazz);