Where are all the function (phases) called in UVM , like build phase , connect phase?

In reply to dave_59:

Hi Dave,

Thanks for providing this simplifying example. What I have seen that m_run_phases task of -vm-hase is calling static method of get_common_domain and pushing a singleton Phase object to mailbox. And then there is a forever loop which is executing execute_phase method. How this execute_phase method is calling all children’s build_phase and then connect_phase and so on and so forth are called from this execute_phase method?