@Contract(pure = true)
  @NotNull
  NonBlockingReadAction<T> expireWhen(@NotNull BooleanSupplier expireCondition);
@Contract(pure = true)
  @NotNull
  NonBlockingReadAction<T> expireWhen(@NotNull BooleanSupplier expireCondition)