[ci skip] Bump to 1.3.0 (Max)
New: Remove nolocks datatracker mixin and replace it with copy-on-write modifications in the usearrays
mixin "Modification" in the sense of the RW-lock and the CoW mechanism mostly means adding new entries to be tracked, which effectively only happens on entity construction. With this change the read overhead forsynchronization is a single atomic read. (malte0811)
Merge pull request #13 from MaxNeedsSnacks/dev/malte (Max)
Hack: Always consider BE list to be clean during on-thread read operations Processing off-thread modifications during an on-thread read
turns it into a write, which may cause CMEs in correct code (malte0811)
Make BlockEntityList#retainAll an unsupported operation It isn't used in practice and the old implementation crashes as soon as an element is removed. (malte0811)
Fix: Add support for off-thread modifications to BlockEntityList While they are technically a race in vanilla, our implementation is much more sensitive to them, causing crashes far more commonly than in vanilla. A good test case for off-thread access is to repeatedly place Mekanism energy cubes with EntityCulling installed. (malte0811)
hotfix 1.2.2: temp downgrade loom to 0.7.2 to fix #7 (Max)
This is a hotfix for the crashes in 1.2.0 / 1.2.1. No new features have been added.
(Changelog for 1.2.1 / 1.2.0)
change: Remove BE Sleeping optimisation
Reason: This caused some issues with (presumably) off-thread BE modification, and probably wouldn't have a tangible performance impact in a typical Forge modded scenario either way (also, it's been removed in upstream for 1.17)
cleanup: Move disabled-by-default rules to rule config
cleanup: Fully remove part of WorldMixin that is already implemented in Forge
fix: Call IForgeTileEntity#onLoad when adding pending block entities
fix: Update overwrite visibility to stop crashes with ATs (fixes #4)