38 lines
1.1 KiB
Plaintext
38 lines
1.1 KiB
Plaintext
@startuml
|
|
!include card-uml-style.iuml
|
|
scale 620 width
|
|
top to bottom direction
|
|
|
|
state "01 WorkerContext lifetime\nstatic initialization → program end" as ObjectLifetime
|
|
|
|
state "PREPARED" as Constructed
|
|
state "02 STARTING" as Starting
|
|
state "READY" as ReadyWrapper
|
|
state "03 RUNNING" as RunningWrapper
|
|
state "COMPLETED" as CompletedWrapper
|
|
|
|
state "Ready" as ReadyKernel
|
|
state "04 Running" as RunningKernel
|
|
state "05 time sliced\nA ↔ B" as TimeSlice
|
|
state "06 Deleted\ncontext remains static" as DeletedKernel
|
|
|
|
Constructed --> Starting : create_worker()
|
|
Starting --> ReadyWrapper : xTaskCreate = pdPASS
|
|
ReadyWrapper --> RunningWrapper : callback entry
|
|
RunningWrapper --> CompletedWrapper : result published
|
|
|
|
ReadyKernel --> RunningKernel : scheduler
|
|
RunningKernel --> ReadyKernel : preemption
|
|
RunningKernel --> TimeSlice : equal priority
|
|
TimeSlice --> RunningKernel : resume
|
|
RunningKernel --> DeletedKernel : vTaskDelete(NULL)
|
|
|
|
ObjectLifetime -[hidden]down-> Constructed
|
|
CompletedWrapper -[hidden]down-> DeletedKernel
|
|
|
|
note right of RunningWrapper
|
|
trace_state is diagnostic application data.
|
|
It is not eTaskState.
|
|
end note
|
|
@enduml
|