소스 검색

add ZillaRuntime.lazyGet

tags/2.0.1
Jonathan Cobb 4 년 전
부모
커밋
a39467dbcd
1개의 변경된 파일19개의 추가작업 그리고 0개의 파일을 삭제
  1. +19
    -0
      src/main/java/org/cobbzilla/util/daemon/ZillaRuntime.java

+ 19
- 0
src/main/java/org/cobbzilla/util/daemon/ZillaRuntime.java 파일 보기

@@ -457,4 +457,23 @@ public class ZillaRuntime {
}
}
}

public interface LazyGet<T> { T init();}

public static <T> T lazyGet(AtomicReference<T> ref, LazyGet<T> init, LazyGet<T> error) {
if (ref.get() == null) {
//noinspection SynchronizationOnLocalVariableOrMethodParameter
synchronized (ref) {
if (ref.get() == null) {
try {
ref.set(init.init());
} catch (Exception e) {
ref.set(error.init());
}
}
}
}
return ref.get();
}

}

불러오는 중...
취소
저장