Skip to content

Commit

Permalink
perf: shortcut off-thread chunk access if the chunk is already available
Browse files Browse the repository at this point in the history
  • Loading branch information
ishland committed Jun 15, 2024
1 parent 1d7de8c commit a9d4bdb
Showing 1 changed file with 11 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,23 @@ private void onGetChunk(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean
@Unique
@Final
private Chunk c2me$getChunkOffThread(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean create) {
// shortcut for worldgen threads
final ChunkRegion currentRegion = CurrentWorldGenState.getCurrentRegion();
if (currentRegion != null) {
Chunk chunk = currentRegion.getChunk(chunkX, chunkZ, leastStatus, false);
if (chunk instanceof WrapperProtoChunk readOnlyChunk) chunk = readOnlyChunk.getWrappedChunk();
if (chunk != null) return chunk;
}

// shortcut if already exists
final ChunkHolder available = this.getChunkHolder(ChunkPos.toLong(chunkX, chunkZ)); // thread-safe
if (available != null) {
final Chunk availableChunk = available.getOrNull(leastStatus);
if (availableChunk != null) {
return availableChunk;
}
}

final CompletableFuture<Chunk> chunkLoad = c2me$getChunkFutureOffThread(chunkX, chunkZ, leastStatus, create);
assert chunkLoad != null;
return CFUtil.join(chunkLoad);
Expand Down

0 comments on commit a9d4bdb

Please sign in to comment.