presto-main/src/main/java/io/prestosql/execution/buffer/OutputBufferMemoryManager.java/OutputBufferMemoryManager/OutputBufferMemoryManager
class OutputBufferMemoryManager:    public OutputBufferMemoryManager(long maxBufferedBytes, Supplier<LocalMemoryContext> systemMemoryContextSupplier, Executor notificationExecutor)
    {
        requireNonNull(systemMemoryContextSupplier, "systemMemoryContextSupplier is null");
        checkArgument(maxBufferedBytes > 0, "maxBufferedBytes must be > 0");
        this.maxBufferedBytes = maxBufferedBytes;
        this.systemMemoryContextSupplier = Suppliers.memoize(systemMemoryContextSupplier::get);
        this.notificationExecutor = requireNonNull(notificationExecutor, "notificationExecutor is null");

        bufferBlockedFuture = SettableFuture.create();
        bufferBlockedFuture.set(null);
    }