@Override public void close() { if (holder != null) { holder.close(); } }
@Override public Object get() { return new SerializablePair<>(firstTime, firstValue); }
public static <InType> CombiningIterator<InType> create( Iterator<InType> it, Comparator<InType> comparator, BinaryFn<InType, InType, InType> fn ) { return new CombiningIterator<InType>(it, comparator, fn); }
private ObjectResourceHolder makeObjectWithHandler() { T object = generator.get(); ObjectId objectId = new ObjectId(); ObjectLeakNotifier notifier = new ObjectLeakNotifier(this); // Using objectId as referent for Cleaner, because if the object itself (e. g. ByteBuffer) is leaked after taken // from the pool, and the ResourceHolder is not closed, Cleaner won't notify about the leak. return new ObjectResourceHolder(object, objectId, Cleaner.create(objectId, notifier), notifier); }
@Nullable private ReferenceCountingResourceHolder<T> wrapObject(T theObject) { return theObject == null ? null : new ReferenceCountingResourceHolder<>( theObject, () -> offer(theObject) ); }
private void createDanglingReleaser(AtomicBoolean released) { try (ReferenceCountingResourceHolder<Closeable> handler = makeReleasingHandler(released)) { handler.increment(); // Releaser not close, the object leaked } }
@Override public String toString() { return "StupidPool{" + "name=" + name + ", objectsCacheMaxCount=" + objectsCacheMaxCount + ", poolSize=" + poolSize() + "}"; }
@Override public void run() { for (ReferenceCountingResourceHolder<Integer> holder : r2) { if (holder != null) { holder.close(); } } } });
@Override public Iterator<Integer> iterator() { return new BitSetIterator(mutableBitmap); }
@Override public boolean hasNext() { boolean retVal = super.hasNext(); if (!retVal) { done[0] = true; } return retVal; } }
private ReferenceCountingResourceHolder<Closeable> makeReleasingHandler(final AtomicBoolean released) { return ReferenceCountingResourceHolder .fromCloseable((Closeable) new Closeable() { @Override public void close() { released.set(true); } }); }
@Override public void close() { if (holder != null) { holder.close(); } }
@Override public Object get() { return new SerializablePair<>(firstTime, firstValue); }
@Override public void run() { for (ReferenceCountingResourceHolder<Integer> holder : r1) { if (holder != null) { holder.close(); } } } });
@Override public void close() { if (holder != null) { holder.close(); } }
@Override public Object get() { return new SerializablePair<>(lastTime, lastValue); }
@Override public void close() { bufHolder.close(); } };
@Override public void close() { if (holder != null) { holder.close(); } }