Threads in Meshtastic

Hello,

I was looking at Meshtastic’s source code and especially, looking at the threads.
I started by looking at the main.cpp to see how it worked and found “PowerFSMThread” and “ButtonThread” were created in this file.
But I wasn’t able to find where the other threads were created (i.e. the Mesh management, BLE…).

I am also curious about how the MeshService::loop() works, and how the observers are able to process the arg when a change is detected.

Can someone help me found out how this works ?
Thanks!