in src/com/pty4j/util/LazyValue.java [17:36]
public T getValue() throws Exception {
Pair<T, Throwable> result = myResult;
if (result != null) {
return unpack(result);
}
synchronized (myLock) {
result = myResult;
if (result == null) {
try {
T value = myProvider.call();
result = new Pair<>(value, null);
}
catch (Throwable t) {
result = new Pair<>(null, t);
}
myResult = result;
}
}
return unpack(result);
}