1.11.Bucket Update Subsystem - 04/16
Changed the bucket update setup (used in the client auth throwing replication) to be an engine subsystem (new in 4.22).
It is a more efficient timer like system that batches updates into buckets based on the HTZ that they request. Its worse case performance will be equivalent to a timer (one bucket per function), and best case is significantly better.
That being said it isn’t for every use, generally only use this for long term updating features that won’t get removed or re-added very often (like polling or heartbeats), it has no initial delay, when you add a function to the pool it can trigger for the first time instantly, or the full delay later, after that it will be on a constant basis.
It also won’t “catch up” on missed updates if the DeltaTime gets high enough to count for two triggers, it will only trigger once in that case.
It is ticked with a FTickableObject class so it will tick AFTER all other normal scene components and actors.
It expects non event functions that are passed in to return a boolean stating whether it is done or not. Returning true will leave the function in its bucket until a remove function is called or the object is destroyed. Events that are passed in specifically have to be removed (unless the object is destroyed, they are still automatically removed then).
C++ functions passed to it in code must be UFUNCTIONS (Currently the member function pointer pathway is removed).
Consider this to be an experimental release.