@Override
            public void run() {
                synchronized (Processor.this.mutex) {
                    if (!Processor.this.usable) {
                        throw new IllegalStateException("Task has already ran");
                    }

                    // check that we're still the bound task.
                    // prevents a race condition between #run and #rescheduleTask
                    if (Processor.this.boundTask != this) {
                        return;
                    }

                    Processor.this.usable = false;
                }

                // compute result
                try {
                    R result = Processor.this.supplier.get();
                    Processor.this.future.complete(result);
                } catch (Exception e) {
                    new RuntimeException("Processor " + Processor.this.supplier + " threw an exception whilst computing a result", e).printStackTrace();
                    Processor.this.future.completeExceptionally(e);
                }
            }
Performs the buffered task

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