docs: public void scheduleDeferredRelease(Releasable releasable) {
      ensureOnUiThread();
  
      if (!mPendingReleasables.add(releasable)) {
        return;
      }
      // Posting to the UI queue is an O(n) operation, so we only do it once.
      // The one runnable does all the releases.
      if (mPendingReleasables.size() == 1) {
        mUiHandler.post(releaseRunnable);
      }
    }