minecraft-src/net/minecraft/util/thread/ReentrantBlockableEventLoop.java
2025-07-04 03:15:13 +03:00

29 lines
584 B
Java

package net.minecraft.util.thread;
public abstract class ReentrantBlockableEventLoop<R extends Runnable> extends BlockableEventLoop<R> {
private int reentrantCount;
public ReentrantBlockableEventLoop(String string) {
super(string);
}
@Override
public boolean scheduleExecutables() {
return this.runningTask() || super.scheduleExecutables();
}
protected boolean runningTask() {
return this.reentrantCount != 0;
}
@Override
public void doRunTask(R task) {
this.reentrantCount++;
try {
super.doRunTask(task);
} finally {
this.reentrantCount--;
}
}
}