@startuml !include card-uml-style.iuml scale 900 width participant main participant periodic participant suspend_target participant observer participant "FreeRTOS scheduler" as Scheduler main -> main : 01 configuration committed main -> Scheduler : 02 create three tasks and start Scheduler -> periodic : 03 highest Ready task runs periodic -> Scheduler : vTaskDelayUntil(t0 + 2) Scheduler -> suspend_target : self-suspend Scheduler -> observer : 04 sees Blocked + Suspended observer -> Scheduler : vTaskResume(suspend_target) Scheduler -> suspend_target : 05 resumed; self-delete Scheduler -> periodic : 06 release at t0 + 2 periodic -> Scheduler : vTaskDelayUntil(t0 + 4) Scheduler -> periodic : 07 release at t0 + 4 periodic -> Scheduler : vTaskDelayUntil(t0 + 6) Scheduler -> periodic : 08 release at t0 + 6 periodic -> Scheduler : 09 clear handle; self-delete Scheduler -> observer : 10 verify timeline and PASS @enduml