Folia/patches/server
Spottedleaf 7595ff6bb2 Mark POI/Entity load tasks as completed before releasing scheduling lock
It must be marked as completed during that lock hold since the
waiters field is set to null. Thus, any other thread attempting
a cancellation will fail to remove from waiters. Also, any
other thread attempting to cancel may set the completed field
to true which would cause accept() to fail as well.

Completion was always designed to happen while holding the
scheduling lock to prevent these race conditions. The code
was originally set up to complete while not holding the
scheduling lock to avoid invoking callbacks while holding the
lock, however the access to the completion field was not
considered.

Resolve this by marking the callback as completed during the
lock, but invoking the accept() function after releasing
the lock. This will prevent any cancellation attempts to be
blocked, and allow the current thread to complete the callback
without any issues.
2023-05-15 11:42:31 -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 Add more debugging information to chunk sending 2023-04-17 15:37:16 -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 Add more debugging information to chunk sending 2023-04-17 15:37:16 -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
0019-Prevent-block-updates-in-non-loaded-or-non-owned-chu.patch Prevent block updates in non-loaded or non-owned chunks 2023-04-17 19:51:21 -07:00
0020-Block-reading-in-world-tile-entities-on-worldgen-thr.patch Block reading in-world tile entities on worldgen threads 2023-04-23 07:50:42 -07:00
0021-Skip-worldstate-access-when-waking-players-up-during.patch Skip worldstate access when waking players up during data deserialization 2023-04-23 07:50:43 -07:00
0022-Break-redstone-on-top-of-trap-doors-early.patch Break redstone on top of trap doors early 2023-05-01 18:28:54 -07:00
0023-Do-not-access-POI-data-for-lodestone-compass.patch Do not access POI data for lodestone compass 2023-05-13 17:30:55 -07:00
0024-Undo-making-JavaPlugin-logger-field-public.patch Undo making JavaPlugin#logger field public (see PaperMC/Paper#9125) (#76) 2023-05-14 18:10:49 -07:00
0025-Use-coordinate-based-locking-to-increase-chunk-syste.patch Use coordinate-based locking to increase chunk system parallelism 2023-05-14 19:46:24 -07:00
0026-Fix-concurrenct-access-to-lookups-field-in-RegistryO.patch Fix concurrenct access to lookups field in RegistryOps 2023-05-15 00:26:56 -07:00
0027-Synchronize-PaperPermissionManager.patch Synchronize PaperPermissionManager 2023-05-15 11:00:49 -07:00
0028-Mark-POI-Entity-load-tasks-as-completed-before-relea.patch Mark POI/Entity load tasks as completed before releasing scheduling lock 2023-05-15 11:42:31 -07:00