Folia/patches/server
Spottedleaf 25e0cbdae4 Rework some parts of the player chunk loader
Change overview:
- Rework limiting
- Remove mid tick updates
- Introduce consistency checks

The old limiting logic used an intervalled counter, but
did not account for possible slight changes in mid tick
invoke rate as it relied heavily on mid-tick logic. Due to
the removal of mid tick updates, it is now important that
the logic functions correctly no matter what rate it is invoked
at. The new logic directly tracks the last update time and
allocates an amount based proportional on the rate targetted,
which makes the logic call rate independent.

The removal of mid tick updates is done to eliminate recursive
call risk, and to additionally reduce the lock pressure on the
chunk system by grouping chunk loads onto one part of the tick
rather than spreading it out. The limiting rework should ensure
that this does not negatively affect rates, but it will decrease
the perceived smoothness of chunk generation/loading at low rates.

Introduce more consistency checks such as correct tick thread
and ticking-after-removal checks. Also, perform checks during the player
chunk loader tick to avoid updating potentially removed
players during the tick.
The checks are primarily made to try to hunt down a bug that
is causing the player chunk loader to double send a chunk
to a player.
2023-04-10 17:51:21 -07:00
..
0001-Build-changes.patch fix: fix build number check in version fetcher (#16) 2023-03-30 14:13:55 -07:00
0002-MC-Dev-fixes.patch Do not call getGameTime when portalling Villagers 2023-03-31 20:48:20 -07:00
0003-New-player-chunk-loader-system.patch Rework some parts of the player chunk loader 2023-04-10 17:51:21 -07:00
0004-Make-ChunkStatus.EMPTY-not-rely-on-the-main-thread-f.patch Do not call getGameTime when portalling Villagers 2023-03-31 20:48:20 -07:00
0005-Threaded-Regions.patch Rework some parts of the player chunk loader 2023-04-10 17:51:21 -07:00
0006-Increase-parallelism-for-neighbour-writing-chunk-sta.patch Rework some parts of the player chunk loader 2023-04-10 17:51:21 -07:00
0007-Cache-whether-region-files-do-not-exist.patch Do not call getGameTime when portalling Villagers 2023-03-31 20:48:20 -07:00
0008-Max-pending-logins.patch Make uses of SimpleDateFormat thread-safe 2023-04-03 18:41:09 -07:00
0009-Add-chunk-system-throughput-counters-to-tps.patch Add entity/player/chunk counters to /tps 2023-04-08 18:44:37 -07:00
0010-Make-CraftEntity-getHandle-and-overrides-perform-thr.patch Adjust CB async teleport dismount behavior 2023-04-08 19:16:10 -07:00
0011-Disable-mid-tick-task-execution.patch Do not call getGameTime when portalling Villagers 2023-03-31 20:48:20 -07:00
0012-Throw-UnsupportedOperationException-for-broken-APIs.patch Do not call getGameTime when portalling Villagers 2023-03-31 20:48:20 -07:00
0013-Fix-tests-by-removing-them.patch Do not call getGameTime when portalling Villagers 2023-03-31 20:48:20 -07:00
0014-Work-around-https-github.com-PaperMC-paperweight-iss.patch Make sign update executor use the EntityScheduler 2023-04-01 07:24:36 -07:00
0015-Require-plugins-to-be-explicitly-marked-as-Folia-sup.patch Do not call getGameTime when portalling Villagers 2023-03-31 20:48:20 -07:00
0016-Acquire-scheduling-lock-in-NewChunkHolder-onFullChun.patch Acquire scheduling lock in NewChunkHolder#onFullChunkLoadChange 2023-04-01 00:53:27 -07:00
0017-Fix-destroying-beehive-without-any-players-nearby-th.patch Fix destroying beehive without any players nearby throwing an exception 2023-04-03 21:26:16 -07:00
0018-Lag-compensate-block-breaking.patch Lag compensate block breaking 2023-04-10 14:16:16 -07:00