Update the child state. This should be called by the thread that desires to spend time updating the child state (intended to be the layout thread).
This acquires a read lock on the associated document for the duration of the update to ensure the model is not changed while it is operating. The first thing to do would be to see if any work actually needs to be done. The following could have conceivably happened while the state was waiting to be updated:
- The child may have been removed from the view hierarchy.
- The child may have been updated by a higher priority operation (i.e. the child may have become visible).