Simple Question on Hover Thrust Estimator

Hello everyone! I’m just wondering if anyone knows or can explain the sequence in which the hover thrust estimator processes local position vs local position setpoint updates as generated by the multicopter position controller.

I’ve read the hte src code and see that it checks for an update for vehicle_local_position to get current az and then vehicle_local_position_setpoint to get thrust, but I don’t know how the uorb pub/sub structure works (e.g. if the check for update is blocking, if there’s like FIFO queue and whatnot, etc…).

Is the hover thrust estimator evaluating the thrust setpoint that was generated using the same vehicle_local_position update that it gets az from? Or is it getting the current az from the latest vehicle_local_position update, but using the previous vehicle_local_position_setpoint for thrust (like assuming the last commanded thrust is the current actual thrust)?

Thanks!