Package net.minecraftforge.fml
Class DeferredWorkQueue
java.lang.Object
net.minecraftforge.fml.DeferredWorkQueue
Utility for running code on the main launch thread at the next available
opportunity. There is no guaranteed order that work from various mods will be
run, but your own work will be run sequentially.
Use of this class after startup is not possible. At that
point, ReentrantBlockableEventLoop
should be used instead.
Exceptions from tasks will be handled gracefully, causing a mod loading error. Tasks that take egregiously long times to run will be logged.
-
Nested Class Summary
Modifier and TypeClassDescription(package private) static final record
-
Field Summary
Modifier and TypeFieldDescriptionprivate static final org.apache.logging.log4j.Logger
private final ModLoadingStage
private final ConcurrentLinkedDeque<DeferredWorkQueue.TaskInfo>
private static final Map<ModLoadingStage,
DeferredWorkQueue> -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionenqueueWork
(ModContainer modInfo, Runnable work) <T> CompletableFuture<T>
enqueueWork
(ModContainer modInfo, Supplier<T> work) static Optional<DeferredWorkQueue>
lookup
(Optional<ModLoadingStage> parallelClass) private static void
makeRunnable
(DeferredWorkQueue.TaskInfo ti, Executor executor) void
runTasks()
-
Field Details
-
LOGGER
private static final org.apache.logging.log4j.Logger LOGGER -
workQueues
-
tasks
-
modLoadingStage
-
-
Constructor Details
-
DeferredWorkQueue
-
-
Method Details
-
lookup
-
runTasks
public void runTasks() -
makeRunnable
-
enqueueWork
-
enqueueWork
-