Files

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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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-&gt;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>