Class LocklessLazyVar<T>

java.lang.Object
manifold.util.concurrent.LocklessLazyVar<T>

public abstract class LocklessLazyVar<T> extends Object
Implements the lazy initialization pattern. No locking of any kind is used.
  • Field Details

    • NULL

      protected static final Object NULL
  • Constructor Details

    • LocklessLazyVar

      public LocklessLazyVar()
  • Method Details

    • get

      public T get()
      Returns:
      the value of this lazy var, created if necessary
    • set

      public T set(T value)
    • init

      protected abstract T init()
    • clear

      public final T clear()
      Clears the variable, forcing the next call to get() to re-init the value.
    • isLoaded

      public boolean isLoaded()
    • make

      public static <Q> LocklessLazyVar<Q> make(LocklessLazyVar.LazyVarInit<Q> closure)
      Creates a new LockingLazyVar based on the type of the LazyVarInit passed in.