minecraft-src/net/minecraft/util/thread/ReentrantBlockableEventLoop.java
2025-07-04 01:41:11 +03:00

29 lines
580 B
Java

package net.minecraft.util.thread;
public abstract class ReentrantBlockableEventLoop<R extends Runnable> extends BlockableEventLoop<R> {
private int reentrantCount;
public ReentrantBlockableEventLoop(String name) {
super(name);
}
@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--;
}
}
}