@ReturnsOwnership
  public static SettableCacheEvent obtain() {
    synchronized (RECYCLER_LOCK) {
      if (sFirstRecycledEvent != null) {
        SettableCacheEvent eventToReuse = sFirstRecycledEvent;
        sFirstRecycledEvent = eventToReuse.mNextRecycledEvent;
        eventToReuse.mNextRecycledEvent = null;
        sRecycledCount--;
        return eventToReuse;
      }
    }

    return new SettableCacheEvent();
  }
Implementation of {@link CacheEvent} that allows the values to be set and supports recycling of
instances.
imagepipeline-base/src/main/java/com/facebook/cache/disk/SettableCacheEvent.java