presto-hive/src/main/java/io/prestosql/plugin/hive/util/AsyncQueue.java/AsyncQueue/offer
class AsyncQueue:    public synchronized ListenableFuture<?> offer(T element)
    {
        requireNonNull(element);

        if (finishing && borrowerCount == 0) {
            return immediateFuture(null);
        }
        elements.add(element);
        int newSize = elements.size();
        if (newSize == 1) {
            completeAsync(executor, notEmptySignal);
            notEmptySignal = SettableFuture.create();
        }
        if (newSize >= targetQueueSize) {
            return notFullSignal;
        }
        return immediateFuture(null);
    }