public boolean getValueWithoutLocks() {
        if (!isInitialised) {
            // May be called >1 times by different threads
            final boolean newVal = valueSupplier.getAsBoolean();
            // Write order is important here due to volatile piggybacking
            value = newVal;
            isInitialised = true;
            return newVal;
        }
        return value;
    }
@return The value, initialising it if required. No locks are used so
the valueSupplier may be called multiple times. This method should only
be used if valueSupplier is idempotent, side effect free and not too
costly to run.
stroom-util/src/main/java/stroom/util/concurrent/LazyBoolean.java