Strategies source code

I have been assigned task to understand how asterisk choose member in rrmemory and least recent strategy.

I understand following points (correct me if I am wrong).
In rrmemory, it start from previous position and keep calling member of lowest member, no matter if it recieves answer from them or not.
In try calling it generate callattempt of queue members and set their metrics according to strategy.
In rrmemory it assigned higher metrics to member who have queuepos less than previous last ringed member position.
For member whose queue position is greater than last ringed position it set wrapped and assigned metric equal to their position.

What I don’t understand is
Why in try_calling it breaks without generating callattempts for remaining member if a member line is up.
When and how it increments the last ringed position of queue and how it is working.

This is not the developer mailing list, nor the developer IRC channel. It is not even the correct forum for end user questions.