public CloseableReference<byte[]> get(int size) {
    Preconditions.checkArgument(size > 0, "Size must be greater than zero");
    Preconditions.checkArgument(size <= mMaxByteArraySize, "Requested size is too big");
    mSemaphore.acquireUninterruptibly();
    try {
      byte[] byteArray = this.getByteArray(size);
      return CloseableReference.of(byteArray, mResourceReleaser);
    } catch (Throwable t) {
      mSemaphore.release();
      throw Throwables.propagate(t);
    }
  }
Get exclusive access to the byte array of size greater or equal to the passed one.

<p>Under the hood this method acquires an exclusive lock that is released when the returned
reference is closed.
imagepipeline/src/main/java/com/facebook/imagepipeline/memory/SharedByteArray.java