diff --git a/src/main/java/org/cobbzilla/util/system/OneWayFlag.java b/src/main/java/org/cobbzilla/util/system/OneWayFlag.java index 909791d..7f701bd 100644 --- a/src/main/java/org/cobbzilla/util/system/OneWayFlag.java +++ b/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 check; + public OneWayFlag(String name) { + this.name = name; + this.check = new ReturnFalseExactlyOnce(); + } + public OneWayFlag(String name, Callable check) { this.name = name; this.check = check; @@ -42,4 +47,11 @@ public class OneWayFlag extends AtomicBoolean { return ok; } + private class ReturnFalseExactlyOnce implements Callable { + @Override public Boolean call() { + final boolean val = get(); + if (!val) set(true); + return val; + } + } }