class NonRecursiveSupplier implements Supplier<T>, com.google.common.base.Supplier<T> {

  @Override
  public T get() {
    acquire();
    try {
      return _inner.get();
    } finally {
      release();
    }
  }

  public  NonRecursiveSupplier(Supplier<T> inner);

}