Package net.minecraft.server.level
Class ChunkTaskDispatcher
java.lang.Object
net.minecraft.server.level.ChunkTaskDispatcher
- All Implemented Interfaces:
AutoCloseable
,ChunkHolder.LevelChangeListener
- Direct Known Subclasses:
ThrottlingChunkTaskDispatcher
public class ChunkTaskDispatcher
extends Object
implements ChunkHolder.LevelChangeListener, AutoCloseable
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final PriorityConsecutiveExecutor
static final int
private final TaskScheduler
<Runnable> private static final org.slf4j.Logger
private final ChunkTaskPriorityQueue
protected boolean
-
Constructor Summary
ConstructorsConstructorDescriptionChunkTaskDispatcher
(TaskScheduler<Runnable> pExecutor, Executor pDispatcher) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
boolean
hasWork()
void
onLevelChange
(ChunkPos pChunkPos, IntSupplier pQueueLevelGetter, int pTicketLevel, IntConsumer pQueueLevelSetter) protected void
onRelease
(long pChunkPos) protected void
pollTask()
protected ChunkTaskPriorityQueue.TasksForChunk
popTasks()
void
protected void
void
submit
(Runnable pTask, long pChunkPos, IntSupplier pQueueLevelSupplier)
-
Field Details
-
DISPATCHER_PRIORITY_COUNT
public static final int DISPATCHER_PRIORITY_COUNT- See Also:
-
LOGGER
private static final org.slf4j.Logger LOGGER -
queue
-
executor
-
dispatcher
-
sleeping
protected boolean sleeping
-
-
Constructor Details
-
ChunkTaskDispatcher
-
-
Method Details
-
hasWork
public boolean hasWork() -
onLevelChange
public void onLevelChange(ChunkPos pChunkPos, IntSupplier pQueueLevelGetter, int pTicketLevel, IntConsumer pQueueLevelSetter) - Specified by:
onLevelChange
in interfaceChunkHolder.LevelChangeListener
-
release
-
submit
-
pollTask
protected void pollTask() -
scheduleForExecution
-
onRelease
protected void onRelease(long pChunkPos) -
popTasks
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
-