Concurrent Chunk Management Engine for Forge -The Twilight Forest fix
Describes
Fix the compatibility between c2mef and Twilight Forest, while fixing bugs and improving performance
Fixed
Thread Safety Fixes
Fixed race condition in
ConcurrentFlagMatrix.setif()- Location:
c2me_fixes_worldgen_threading_issues/.../ConcurrentFlagMatrix.java - Issue: Race condition between read and write locks in
setif()method - Solution: Use write lock throughout the entire operation for atomicity
- Location:
Prevented potential deadlocks in lock acquisition
- Location:
c2me_base/.../AsyncCombinedLock.java,SchedulingAsyncCombinedLock.java - Issue: Unordered lock acquisition could cause deadlocks
- Solution: Sort lock names to ensure consistent acquisition order
- Location:
Fixed infinite recursion in error handling
- Location:
AsyncCombinedLock.java,SchedulingAsyncCombinedLock.java - Issue: Recursive calls in error path could cause stack overflow
- Solution: Throw
IllegalStateExceptioninstead of recursing
- Location:
Enhanced object pool safety
- Location:
c2me_base/.../SimpleObjectPool.java - Added: Null checks and object state cleanup before return to pool
- Location:
Changed
Error Handling Improvements
Replaced printStackTrace() with proper logging
- Location:
SchedulingAsyncCombinedLock.java,NeighborLockingTask.java,NoTickSystem.java,MixinChunkStatus.java,C2MEMod.java - Changed: Use SLF4J Logger instead of stack trace printing / System.out.printf for better log management
- Location:
Added ForkJoinPool compatibility
- Location:
c2me_fixes_chunkio_threading_issues/.../SynchronizedCodec.java - Added:
ManagedBlockersupport to prevent ForkJoinPool thread starvation
- Location:
Performance
Chunk Generation Speed Optimizations
Aggressive spin-wait strategy for ultra-low latency
- Location:
c2me_base/.../CFUtil.java - Optimization: 10,000 pure spins + 1ns park to minimize thread context switching
- Effect: Minimized task completion wait time
- Location:
High-throughput I/O thread optimization
- Location:
c2me_rewrites_chunkio/.../C2MEStorageThread.java - Optimization: 10,000 spins + 100ns park, optimized read request processing
- Effect: Maximized disk I/O throughput
- Location:
Scheduler batch processing optimization
- Location:
c2me_base/.../SchedulingManager.java - Optimization: Removed unused timing code, immediate rescheduling in finally block, batch task scheduling
- Effect: Keep scheduler running at full capacity
- Location:
Priority queue fast path
- Location:
c2me_base/.../DynamicPriorityQueue.java - Added:
isEmpty()method for O(1) fast checking - Effect: Reduced queue checking overhead
- Location:
Optimized lock checking in NeighborLockingTask
- Location:
c2me_base/.../NeighborLockingTask.java - Optimization: Use indexed for loop instead of enhanced for loop, cache array length
- Effect: Reduced allocation and improved loop performance
- Location:
Optimized priority distance calculation
- Location:
c2me_base/.../SchedulingManager.java - Optimization: Use long-based Chebyshev distance calculation instead of creating ChunkPos objects
- Effect: Reduced object allocation during priority updates
- Location:
- Edition: Minecraft Java
- File type: .jar
- Minecraft version listed: 1.20.1
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on CurseForge — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
Concurrent Chunk Management Engine for Forge -The Twilight Forest fix is a free Minecraft Java mod. Compatible with Minecraft 1.20.1. Downloaded 126,311 times (via CurseForge). Download it and open it directly in the game.