118 lines
15 KiB
XML
118 lines
15 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="478.6444px" preserveAspectRatio="none" style="width:616px;height:478px;" version="1.1" viewBox="0 0 616 478" width="616.7254px" zoomAndPan="magnify"><defs/><g><rect fill="#F5F8FA" height="41.8029" rx="6.8222" ry="6.8222" style="stroke: #607985; stroke-width: 0.818661971830986;" width="170.2817" x="290.4449" y="4.5463"/><line style="stroke: #607985; stroke-width: 0.818661971830986;" x1="290.4449" x2="460.7266" y1="34.3422" y2="34.3422"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="113.5211" x="318.8252" y="17.6422">01 WorkerContext lifetime</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="152.8169" x="299.1773" y="26.5367">static initialization → program end</text><rect fill="#F5F8FA" height="32.9085" rx="6.8222" ry="6.8222" style="stroke: #607985; stroke-width: 0.818661971830986;" width="52.3944" x="349.3886" y="69.8155"/><line style="stroke: #607985; stroke-width: 0.818661971830986;" x1="349.3886" x2="401.7829" y1="90.717" y2="90.717"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="34.9296" x="358.121" y="82.9114">PREPARED</text><rect fill="#F5F8FA" height="32.9085" rx="6.8222" ry="6.8222" style="stroke: #607985; stroke-width: 0.818661971830986;" width="69.8592" x="340.6562" y="142.0215"/><line style="stroke: #607985; stroke-width: 0.818661971830986;" x1="340.6562" x2="410.5153" y1="162.9229" y2="162.9229"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="52.3944" x="349.3886" y="155.1174">02 STARTING</text><rect fill="#F5F8FA" height="32.9085" rx="6.8222" ry="6.8222" style="stroke: #607985; stroke-width: 0.818661971830986;" width="39.2958" x="355.9379" y="214.2275"/><line style="stroke: #607985; stroke-width: 0.818661971830986;" x1="355.9379" x2="395.2336" y1="235.1289" y2="235.1289"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="21.831" x="364.6702" y="227.3234">READY</text><rect fill="#F5F8FA" height="32.9085" rx="6.8222" ry="6.8222" style="stroke: #607985; stroke-width: 0.818661971830986;" width="65.493" x="342.8393" y="286.428"/><line style="stroke: #607985; stroke-width: 0.818661971830986;" x1="342.8393" x2="408.3322" y1="307.3295" y2="307.3295"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="48.0282" x="351.5717" y="299.5239">03 RUNNING</text><rect fill="#F5F8FA" height="32.9085" rx="6.8222" ry="6.8222" style="stroke: #607985; stroke-width: 0.818661971830986;" width="56.7606" x="347.2055" y="358.634"/><line style="stroke: #607985; stroke-width: 0.818661971830986;" x1="347.2055" x2="403.966" y1="379.5354" y2="379.5354"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="39.2958" x="355.9379" y="371.7299">COMPLETED</text><rect fill="#F5F8FA" height="32.9085" rx="6.8222" ry="6.8222" style="stroke: #607985; stroke-width: 0.818661971830986;" width="39.2958" x="23.0153" y="435.2826"/><line style="stroke: #607985; stroke-width: 0.818661971830986;" x1="23.0153" x2="62.3111" y1="456.184" y2="456.184"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="21.831" x="31.7477" y="448.3785">Ready</text><rect fill="#F5F8FA" height="32.9085" rx="6.8222" ry="6.8222" style="stroke: #607985; stroke-width: 0.818661971830986;" width="65.493" x="100.5153" y="358.634"/><line style="stroke: #607985; stroke-width: 0.818661971830986;" x1="100.5153" x2="166.0083" y1="379.5354" y2="379.5354"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="48.0282" x="109.2477" y="371.7299">04 Running</text><rect fill="#F5F8FA" height="41.8029" rx="6.8222" ry="6.8222" style="stroke: #607985; stroke-width: 0.818661971830986;" width="82.9577" x="113.0681" y="430.84"/><line style="stroke: #607985; stroke-width: 0.818661971830986;" x1="113.0681" x2="196.0259" y1="460.6358" y2="460.6358"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="65.493" x="121.8005" y="443.9359">05 time sliced</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="21.831" x="143.6315" y="452.8303">A ↔ B</text><rect fill="#F5F8FA" height="41.8029" rx="6.8222" ry="6.8222" style="stroke: #607985; stroke-width: 0.818661971830986;" width="113.5211" x="271.3428" y="430.84"/><line style="stroke: #607985; stroke-width: 0.818661971830986;" x1="271.3428" x2="384.8639" y1="460.6358" y2="460.6358"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="48.0282" x="304.0893" y="443.9359">06 Deleted</text><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="96.0563" x="280.0752" y="452.8303">context remains static</text><path d="M427.9801,289.2551 L427.9801,300.7 L408.5287,302.8831 L427.9801,305.0662 L427.9801,316.5097 A0,0 0 0 0 427.9801,316.5097 L610.2688,316.5097 A0,0 0 0 0 610.2688,316.5097 L610.2688,294.7129 L604.8111,289.2551 L427.9801,289.2551 A0,0 0 0 0 427.9801,289.2551 " fill="#F7F5ED" style="stroke: #8A887C; stroke-width: 0.545774647887324;"/><path d="M604.8111,289.2551 L604.8111,294.7129 L610.2688,294.7129 L604.8111,289.2551 " fill="#F7F5ED" style="stroke: #8A887C; stroke-width: 0.545774647887324;"/><text fill="#3E4B50" font-family="DejaVu Sans Mono" font-size="6.5493" lengthAdjust="spacingAndGlyphs" textLength="164.2782" x="434.5294" y="301.3378">trace_state is diagnostic application data.</text><text fill="#3E4B50" font-family="DejaVu Sans Mono" font-size="6.5493" lengthAdjust="spacingAndGlyphs" textLength="80.2289" x="434.5294" y="308.9616">It is not eTaskState.</text><!--MD5=[57df3e1fa0d76467e22b9074862bea93]
|
|
link Constructed to Starting--><path d="M375.5857,102.9549 C375.5857,113.4556 375.5857,127.2146 375.5857,138.343 " fill="none" id="Constructed->Starting" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><polygon fill="#607985" points="375.5857,141.0282,377.7688,136.1162,375.5857,138.2993,373.4026,136.1162,375.5857,141.0282" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="65.493" x="379.4062" y="125.0998">create_worker()</text><!--MD5=[d0921b951b3db9cdebc3462477b59023]
|
|
link Starting to ReadyWrapper--><path d="M375.5857,175.1555 C375.5857,185.6562 375.5857,199.4206 375.5857,210.5489 " fill="none" id="Starting->ReadyWrapper" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><polygon fill="#607985" points="375.5857,213.2342,377.7688,208.3222,375.5857,210.5053,373.4026,208.3222,375.5857,213.2342" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="87.3239" x="379.4062" y="197.3058">xTaskCreate = pdPASS</text><!--MD5=[a6729c288876d9b70d425a6469682886]
|
|
link ReadyWrapper to RunningWrapper--><path d="M375.5857,247.3614 C375.5857,257.8621 375.5857,271.6266 375.5857,282.7549 " fill="none" id="ReadyWrapper->RunningWrapper" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><polygon fill="#607985" points="375.5857,285.4401,377.7688,280.5282,375.5857,282.7113,373.4026,280.5282,375.5857,285.4401" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="61.1268" x="379.4062" y="269.5063">callback entry</text><!--MD5=[4efbd14f48528851f4d90fa4e35f5af6]
|
|
link RunningWrapper to CompletedWrapper--><path d="M375.5857,319.5674 C375.5857,330.0681 375.5857,343.8271 375.5857,354.9555 " fill="none" id="RunningWrapper->CompletedWrapper" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><polygon fill="#607985" points="375.5857,357.6407,377.7688,352.7287,375.5857,354.9118,373.4026,352.7287,375.5857,357.6407" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="69.8592" x="379.4062" y="341.7123">result published</text><!--MD5=[7beb2c81d6570779b7d5627802775a73]
|
|
link ReadyKernel to RunningKernel--><path d="M51.3465,435.0806 C57.4755,424.8746 66.4535,411.9616 77.047,403.0055 C83.0669,397.9134 90.1947,393.509 97.3171,389.8086 " fill="none" id="ReadyKernel->RunningKernel" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><polygon fill="#607985" points="99.6312,388.6407,94.2624,388.9053,97.1951,389.8704,96.23,392.803,99.6312,388.6407" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="39.2958" x="80.8674" y="413.9183">scheduler</text><!--MD5=[6d8edac99e8be71832143f20c7c85ce8]
|
|
link RunningKernel to ReadyKernel--><path d="M100.2915,378.1509 C66.7864,381.4746 18.207,388.6734 6.6421,403.0055 C-2.1995,413.9592 8.2576,426.7412 20.1445,436.385 " fill="none" id="RunningKernel->ReadyKernel" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><polygon fill="#607985" points="22.2076,438.006,19.6932,433.2551,20.0615,436.3204,16.9962,436.6887,22.2076,438.006" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="43.662" x="10.4625" y="413.9183">preemption</text><!--MD5=[02fb52c957cea75b83d9e43335d6fa96]
|
|
link RunningKernel to TimeSlice--><path d="M129.7143,391.8007 C128.5408,400.2165 128.1806,410.5644 131.0787,419.3787 C132.0283,422.2495 133.3382,425.0766 134.8718,427.7891 " fill="none" id="RunningKernel->TimeSlice" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><polygon fill="#607985" points="136.1817,429.9722,135.5265,424.637,134.7777,427.6322,131.7825,426.8834,136.1817,429.9722" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="61.1268" x="134.8991" y="413.9183">equal priority</text><!--MD5=[8a073d1be8d55a5e7ef8534a386c32df]
|
|
link TimeSlice to RunningKernel--><path d="M193.1387,430.6708 C203.1046,422.637 209.3537,412.9658 202.5752,403.0055 C194.9944,391.8607 182.1032,385.2514 169.4794,381.3327 " fill="none" id="TimeSlice->RunningKernel" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><polygon fill="#607985" points="166.8979,380.5796,171.0021,384.0507,169.5176,381.3437,172.2246,379.8592,166.8979,380.5796" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="26.1972" x="209.2282" y="413.9183">resume</text><!--MD5=[aec9c000b876846588741c2114066e74]
|
|
link RunningKernel to DeletedKernel--><path d="M166.2484,381.2782 C188.6852,385.7208 218.7683,392.865 244.054,403.0055 C253.687,406.8641 273.5641,418.1998 291.5692,428.9079 " fill="none" id="RunningKernel->DeletedKernel" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><polygon fill="#607985" points="293.7305,430.196,290.6245,425.8089,291.385,428.8011,288.3928,429.5617,293.7305,430.196" style="stroke: #607985; stroke-width: 0.7095070422535212;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.6408" lengthAdjust="spacingAndGlyphs" textLength="74.2254" x="277.057" y="413.9183">vTaskDelete(NULL)</text><!--MD5=[16bbc93caa2fec5ac804b39365a1f84d]
|
|
link ObjectLifetime to Constructed--><!--MD5=[546d100402533602330b5107f5cafa95]
|
|
link CompletedWrapper to DeletedKernel--><!--MD5=[177ff6460a48f2eaf44fb1adad233ee2]
|
|
@startuml
|
|
skinparam backgroundColor white
|
|
skinparam shadowing false
|
|
skinparam monochrome false
|
|
skinparam defaultFontName "DejaVu Sans Mono"
|
|
skinparam defaultFontSize 14
|
|
skinparam defaultFontColor #24343D
|
|
skinparam titleFontName "DejaVu Sans Mono"
|
|
skinparam titleFontSize 13
|
|
skinparam titleFontColor #536B78
|
|
skinparam titleFontStyle plain
|
|
|
|
skinparam ArrowColor #607985
|
|
skinparam ArrowFontColor #425B67
|
|
skinparam ArrowThickness 1.3
|
|
skinparam LineThickness 1.3
|
|
skinparam nodesep 36
|
|
skinparam ranksep 42
|
|
skinparam Padding 6
|
|
|
|
skinparam classBackgroundColor #F5F8FA
|
|
skinparam classBorderColor #607985
|
|
skinparam classBorderThickness 1.5
|
|
skinparam classFontColor #1F3039
|
|
skinparam classFontSize 15
|
|
skinparam classAttributeFontColor #2E424D
|
|
skinparam classAttributeFontSize 13
|
|
skinparam classStereotypeFontColor #526B77
|
|
skinparam classStereotypeFontSize 11
|
|
skinparam minClassWidth 190
|
|
skinparam ClassAttributeIconSize 0
|
|
|
|
skinparam stateBackgroundColor #F5F8FA
|
|
skinparam stateBorderColor #607985
|
|
skinparam stateBorderThickness 1.5
|
|
skinparam stateFontColor #1F3039
|
|
skinparam stateFontSize 14
|
|
skinparam stateAttributeFontSize 13
|
|
|
|
skinparam noteBackgroundColor #F7F5ED
|
|
skinparam noteBorderColor #8A887C
|
|
skinparam noteFontColor #3E4B50
|
|
skinparam noteFontSize 12
|
|
|
|
skinparam ParticipantBackgroundColor #F5F8FA
|
|
skinparam ParticipantBorderColor #607985
|
|
skinparam ParticipantBorderThickness 1.5
|
|
skinparam ParticipantFontColor #1F3039
|
|
skinparam ParticipantFontSize 13
|
|
skinparam ActorBorderColor #607985
|
|
skinparam ActorFontColor #1F3039
|
|
skinparam LifeLineBorderColor #8297A1
|
|
skinparam LifeLineBackgroundColor #F9FBFC
|
|
skinparam SequenceArrowColor #607985
|
|
skinparam SequenceMessageAlign center
|
|
skinparam ParticipantPadding 18
|
|
skinparam BoxPadding 8
|
|
|
|
hide circle
|
|
hide empty members
|
|
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
|
|
|
|
PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
|
|
(GPL source distribution)
|
|
Java Runtime: OpenJDK Runtime Environment
|
|
JVM: OpenJDK 64-Bit Server VM
|
|
Java Version: 25.0.4-ea+4-1-Debian
|
|
Operating System: Linux
|
|
Default Encoding: UTF-8
|
|
Language: en
|
|
Country: null
|
|
--></g></svg> |