Concurrent Chunk Management Engine for Forge -The Twilight Forest fix
Modby dreamforSh
Fix the compatibility between c2mef and Twilight Forest, while fixing bugs and improving performance
Description
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:
Recommended Gear
AffiliateHardware and extras that pair well with this mod.
As an Amazon Associate I earn from qualifying purchases.
Similar Mods
[Retired] DnT End Castle Standalone
Retired, we decided to retire this project since keeping it up becomes too much of a technical challange for something t...
Crock Pot
Bring Crock Pot from Don’t Starve into Minecraft
Better Chat
Adds various chat options to Minecraft
More Slabs, Stairs, and Walls
Expand your building options with More Slabs, Stairs, & Walls.
Lifts
A technology mod for Minecraft that adds various lifts for better vertical traversal inside your world.
Midnight Rifting Machine
To and from the midnight with ease