瀏覽代碼

add simple OneWayFlag constructor that returns false once

tags/2.0.1
Jonathan Cobb 5 年之前
父節點
當前提交
cd85501107
共有 1 個檔案被更改,包括 12 行新增0 行删除
  1. +12
    -0
      src/main/java/org/cobbzilla/util/system/OneWayFlag.java

+ 12
- 0
src/main/java/org/cobbzilla/util/system/OneWayFlag.java 查看文件

@@ -18,6 +18,11 @@ public class OneWayFlag extends AtomicBoolean {
private final String name;
private final Callable<Boolean> check;

public OneWayFlag(String name) {
this.name = name;
this.check = new ReturnFalseExactlyOnce();
}

public OneWayFlag(String name, Callable<Boolean> check) {
this.name = name;
this.check = check;
@@ -42,4 +47,11 @@ public class OneWayFlag extends AtomicBoolean {
return ok;
}

private class ReturnFalseExactlyOnce implements Callable<Boolean> {
@Override public Boolean call() {
final boolean val = get();
if (!val) set(true);
return val;
}
}
}

Loading…
取消
儲存