Package net.minecraft.server.level
Class ChunkTaskPriorityQueueSorter
java.lang.Object
net.minecraft.server.level.ChunkTaskPriorityQueueSorter
- All Implemented Interfaces:
AutoCloseable,ChunkHolder.LevelChangeListener
public class ChunkTaskPriorityQueueSorter
extends Object
implements ChunkHolder.LevelChangeListener, AutoCloseable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classstatic final class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final org.slf4j.Loggerprivate final ProcessorMailbox<StrictQueue.IntRunnable> private final Map<ProcessorHandle<?>, ChunkTaskPriorityQueue<? extends Function<ProcessorHandle<Unit>, ?>>> private final Set<ProcessorHandle<?>> -
Constructor Summary
ConstructorsConstructorDescriptionChunkTaskPriorityQueueSorter(List<ProcessorHandle<?>> queues, Executor task, int maxTasks) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()getProcessor(ProcessorHandle<T> processor, boolean flush) private <T> ChunkTaskPriorityQueue<Function<ProcessorHandle<Unit>, T>> getQueue(ProcessorHandle<T> processor) getReleaseProcessor(ProcessorHandle<Runnable> processor) booleanhasWork()message(Runnable task, long pos, IntSupplier level) static <T> ChunkTaskPriorityQueueSorter.Message<T> message(Function<ProcessorHandle<Unit>, T> task, long pos, IntSupplier level) message(GenerationChunkHolder chunk, Runnable task) static <T> ChunkTaskPriorityQueueSorter.Message<T> message(GenerationChunkHolder chunk, Function<ProcessorHandle<Unit>, T> task) voidonLevelChange(ChunkPos chunkPos, IntSupplier queueLevelGetter, int ticketLevel, IntConsumer queueLevelSetter) private <T> voidpollTask(ChunkTaskPriorityQueue<Function<ProcessorHandle<Unit>, T>> queue, ProcessorHandle<T> processor) private <T> voidrelease(ProcessorHandle<T> processor, long chunkPos, Runnable task, boolean clearQueue) private <T> voidsubmit(ProcessorHandle<T> processor, Function<ProcessorHandle<Unit>, T> task, long chunkPos, IntSupplier level, boolean flush)
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
queues
private final Map<ProcessorHandle<?>,ChunkTaskPriorityQueue<? extends Function<ProcessorHandle<Unit>, queues?>>> -
sleeping
-
mailbox
-
-
Constructor Details
-
ChunkTaskPriorityQueueSorter
-
-
Method Details
-
hasWork
public boolean hasWork() -
message
public static <T> ChunkTaskPriorityQueueSorter.Message<T> message(Function<ProcessorHandle<Unit>, T> task, long pos, IntSupplier level) -
message
public static ChunkTaskPriorityQueueSorter.Message<Runnable> message(Runnable task, long pos, IntSupplier level) -
message
public static ChunkTaskPriorityQueueSorter.Message<Runnable> message(GenerationChunkHolder chunk, Runnable task) -
message
public static <T> ChunkTaskPriorityQueueSorter.Message<T> message(GenerationChunkHolder chunk, Function<ProcessorHandle<Unit>, T> task) -
release
public static ChunkTaskPriorityQueueSorter.Release release(Runnable task, long pos, boolean clearQueue) -
getProcessor
public <T> ProcessorHandle<ChunkTaskPriorityQueueSorter.Message<T>> getProcessor(ProcessorHandle<T> processor, boolean flush) -
getReleaseProcessor
public ProcessorHandle<ChunkTaskPriorityQueueSorter.Release> getReleaseProcessor(ProcessorHandle<Runnable> processor) -
onLevelChange
public void onLevelChange(ChunkPos chunkPos, IntSupplier queueLevelGetter, int ticketLevel, IntConsumer queueLevelSetter) - Specified by:
onLevelChangein interfaceChunkHolder.LevelChangeListener
-
release
private <T> void release(ProcessorHandle<T> processor, long chunkPos, Runnable task, boolean clearQueue) -
submit
private <T> void submit(ProcessorHandle<T> processor, Function<ProcessorHandle<Unit>, T> task, long chunkPos, IntSupplier level, boolean flush) -
pollTask
private <T> void pollTask(ChunkTaskPriorityQueue<Function<ProcessorHandle<Unit>, T>> queue, ProcessorHandle<T> processor) -
getQueue
private <T> ChunkTaskPriorityQueue<Function<ProcessorHandle<Unit>,T>> getQueue(ProcessorHandle<T> processor) -
getDebugStatus
-
close
public void close()- Specified by:
closein interfaceAutoCloseable
-