public CompletableFuture<T> request() {
        synchronized (this.mutex) {
            if (this.processor != null) {
                try {
                    return this.processor.extendAndGetFuture();
                } catch (ProcessorAlreadyRanException e) {
                    // ignore
                }
            }

            Processor<T> p = this.processor = new Processor<>(this::perform, this.bufferTime, this.unit, this.schedulerAdapter);
            return p.getFuture();
        }
    }
Makes a request to the buffer

@return the future
common/src/main/java/me/lucko/luckperms/common/cache/BufferedRequest.java