Mineuniverse
Mods
Concurrent Chunk Management Engine for Forge -The Twilight Forest fix

Concurrent Chunk Management Engine for Forge -The Twilight Forest fix

MOD
Fix the compatibility between c2mef and Twilight Forest, while fixing bugs and improving performance
by dreamforSh
Download Claim this project
157,567 downloads
0 likes
Updated Oct 14, 2026
0 hypes
Performance Utility & QoL
Advertisement Remove ads with Premium →

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
  • 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
  • Fixed infinite recursion in error handling

    • Location: AsyncCombinedLock.java, SchedulingAsyncCombinedLock.java
    • Issue: Recursive calls in error path could cause stack overflow
    • Solution: Throw IllegalStateException instead of recursing
  • Enhanced object pool safety

    • Location: c2me_base/.../SimpleObjectPool.java
    • Added: Null checks and object state cleanup before return to pool

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
  • Added ForkJoinPool compatibility

    • Location: c2me_fixes_chunkio_threading_issues/.../SynchronizedCodec.java
    • Added: ManagedBlocker support to prevent ForkJoinPool thread starvation

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
  • 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
  • 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
  • Priority queue fast path

    • Location: c2me_base/.../DynamicPriorityQueue.java
    • Added: isEmpty() method for O(1) fast checking
    • Effect: Reduced queue checking overhead
  • 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
  • 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
c2meF-0.2.0+alpha.13-all.jar
MC Client, 1.20.1, Forge, NeoForge, Server
Release 2026-03-12 Get

More from dreamforSh

Advertisement Remove ads with Premium →

You Might Also Like