Once created with MassObserverManager.GetOrMakeObserverLock will prevent triggering observers and instead buffer all the notifications to be sent. Once the FObserverLock gets released it will call MassObserverManager.ResumeExecution that will send out all the buffered notifications.
- Note
- that due to the buffering, all the "Remove" operation observers will be sent out later than usually - without locking those observers get triggered before the removal operation is performed, and as such have access to the data "about to be removed". Removal observers sent out after lock release won't have access to that information.
There's a special path for freshly created entities, see FCreationContext for more details.