The update function executes all the deferred assignments into the actual data objects, based on the update list. As a by-product, the function can determine whether the system is still processing data or it has reached a stationary condition. If the update list is empty, it means that the system executed an idle step. The
step_has_changes
flag indicates whether the step has ongoing processing, or the previous execution cycle was actually an idle step.