soiz1's picture
Upload folder using huggingface_hub
d46f4a3 verified
package net.minecraft.util.thread;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.function.Consumer;
public interface TaskScheduler<R extends Runnable> extends AutoCloseable {
String name();
void schedule(R p_365586_);
@Override
default void close() {
}
R wrapRunnable(Runnable p_367607_);
default <Source> CompletableFuture<Source> scheduleWithResult(Consumer<CompletableFuture<Source>> p_365778_) {
CompletableFuture<Source> completablefuture = new CompletableFuture<>();
this.schedule(this.wrapRunnable(() -> p_365778_.accept(completablefuture)));
return completablefuture;
}
static TaskScheduler<Runnable> wrapExecutor(final String p_367076_, final Executor p_363384_) {
return new TaskScheduler<Runnable>() {
@Override
public String name() {
return p_367076_;
}
@Override
public void schedule(Runnable p_361412_) {
p_363384_.execute(p_361412_);
}
@Override
public Runnable wrapRunnable(Runnable p_367104_) {
return p_367104_;
}
@Override
public String toString() {
return p_367076_;
}
};
}
}