106 lines
14 KiB
XML
106 lines
14 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="328.7879px" preserveAspectRatio="none" style="width:903px;height:328px;" version="1.1" viewBox="0 0 903 328" width="903.5354px" zoomAndPan="magnify"><defs/><g><rect fill="#FFFFFF" height="92.0139" style="stroke: #A80036; stroke-width: 0.5050505050505051;" width="5.0505" x="185.3535" y="73.0942"/><rect fill="#FFFFFF" height="49.2898" style="stroke: #A80036; stroke-width: 0.5050505050505051;" width="5.0505" x="433.8384" y="94.4563"/><line style="stroke: #A80036; stroke-width: 0.5050505050505051; stroke-dasharray: 5.0,5.0;" x1="63.6364" x2="63.6364" y1="22.7943" y2="322.747"/><line style="stroke: #A80036; stroke-width: 0.5050505050505051; stroke-dasharray: 5.0,5.0;" x1="187.8788" x2="187.8788" y1="22.7943" y2="322.747"/><line style="stroke: #A80036; stroke-width: 0.5050505050505051; stroke-dasharray: 5.0,5.0;" x1="312.1212" x2="312.1212" y1="22.7943" y2="322.747"/><line style="stroke: #A80036; stroke-width: 0.5050505050505051; stroke-dasharray: 5.0,5.0;" x1="436.3636" x2="436.3636" y1="22.7943" y2="322.747"/><line style="stroke: #A80036; stroke-width: 0.5050505050505051; stroke-dasharray: 5.0,5.0;" x1="560.6061" x2="560.6061" y1="22.7943" y2="322.747"/><line style="stroke: #A80036; stroke-width: 0.5050505050505051; stroke-dasharray: 5.0,5.0;" x1="715.1515" x2="715.1515" y1="22.7943" y2="322.747"/><line style="stroke: #A80036; stroke-width: 0.5050505050505051; stroke-dasharray: 5.0,5.0;" x1="839.3939" x2="839.3939" y1="22.7943" y2="322.747"/><rect fill="#F5F8FA" height="20.7741" style="stroke: #607985; stroke-width: 0.7575757575757576;" width="103.0303" x="12.1212" y="1.5152"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.5657" lengthAdjust="spacingAndGlyphs" textLength="16.1616" x="55.5556" y="14.1752">main</text><rect fill="#F5F8FA" height="20.7741" style="stroke: #607985; stroke-width: 0.7575757575757576;" width="103.0303" x="136.3636" y="1.5152"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.5657" lengthAdjust="spacingAndGlyphs" textLength="36.3636" x="169.697" y="14.1752">Scheduler</text><rect fill="#F5F8FA" height="20.7741" style="stroke: #607985; stroke-width: 0.7575757575757576;" width="103.0303" x="260.6061" y="1.5152"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.5657" lengthAdjust="spacingAndGlyphs" textLength="36.3636" x="293.9394" y="14.1752">tick hook</text><rect fill="#F5F8FA" height="20.7741" style="stroke: #607985; stroke-width: 0.7575757575757576;" width="103.0303" x="384.8485" y="1.5152"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.5657" lengthAdjust="spacingAndGlyphs" textLength="40.404" x="416.1616" y="14.1752">high probe</text><rect fill="#F5F8FA" height="20.7741" style="stroke: #607985; stroke-width: 0.7575757575757576;" width="103.0303" x="509.0909" y="1.5152"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.5657" lengthAdjust="spacingAndGlyphs" textLength="20.202" x="550.5051" y="14.1752">peerA</text><rect fill="#F5F8FA" height="20.7741" style="stroke: #607985; stroke-width: 0.7575757575757576;" width="103.0303" x="663.6364" y="1.5152"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.5657" lengthAdjust="spacingAndGlyphs" textLength="20.202" x="705.0505" y="14.1752">peerB</text><rect fill="#F5F8FA" height="20.7741" style="stroke: #607985; stroke-width: 0.7575757575757576;" width="103.0303" x="787.8788" y="1.5152"/><text fill="#1F3039" font-family="DejaVu Sans Mono" font-size="6.5657" lengthAdjust="spacingAndGlyphs" textLength="32.3232" x="823.2323" y="14.1752">verifier</text><rect fill="#FFFFFF" height="92.0139" style="stroke: #A80036; stroke-width: 0.5050505050505051;" width="5.0505" x="185.3535" y="73.0942"/><rect fill="#FFFFFF" height="49.2898" style="stroke: #A80036; stroke-width: 0.5050505050505051;" width="5.0505" x="433.8384" y="94.4563"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="560.6061" x2="581.8182" y1="45.1665" y2="45.1665"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="581.8182" x2="581.8182" y1="45.1665" y2="51.7322"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="561.1111" x2="581.8182" y1="51.7322" y2="51.7322"/><polygon fill="#607985" points="566.1616,49.712,561.1111,51.7322,566.1616,53.7524,564.1414,51.7322" style="stroke: #607985; stroke-width: 0.5050505050505051;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="8.0808" x="567.1717" y="39.4586">08</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" lengthAdjust="spacingAndGlyphs" textLength="76.7677" x="579.2929" y="39.4586">marker before_raise</text><polygon fill="#607985" points="195.9596,71.074,190.9091,73.0942,195.9596,75.1144,193.9394,73.0942" style="stroke: #607985; stroke-width: 0.5050505050505051;"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="192.9293" x2="560.101" y1="73.0942" y2="73.0942"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" lengthAdjust="spacingAndGlyphs" textLength="101.0101" x="325" y="67.3863">vTaskPrioritySet(high, 3)</text><polygon fill="#607985" points="427.7778,92.4361,432.8283,94.4563,427.7778,96.4765,429.798,94.4563" style="stroke: #607985; stroke-width: 0.5050505050505051;"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="190.404" x2="430.8081" y1="94.4563" y2="94.4563"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="8.0808" x="235.3535" y="88.7483">09</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" lengthAdjust="spacingAndGlyphs" textLength="141.4141" x="247.4747" y="88.7483">immediate higher-priority selection</text><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="438.8889" x2="460.101" y1="115.8183" y2="115.8183"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="460.101" x2="460.101" y1="115.8183" y2="122.384"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="439.3939" x2="460.101" y1="122.384" y2="122.384"/><polygon fill="#607985" points="444.4444,120.3638,439.3939,122.384,444.4444,124.4042,442.4242,122.384" style="stroke: #607985; stroke-width: 0.5050505050505051;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" lengthAdjust="spacingAndGlyphs" textLength="44.4444" x="445.4545" y="110.1104">marker HIGH</text><polygon fill="#607985" points="195.9596,141.7259,190.9091,143.7461,195.9596,145.7663,193.9394,143.7461" style="stroke: #607985; stroke-width: 0.5050505050505051;"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="192.9293" x2="435.8586" y1="143.7461" y2="143.7461"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" lengthAdjust="spacingAndGlyphs" textLength="68.6869" x="279.0404" y="138.0381">vTaskDelete(NULL)</text><polygon fill="#607985" points="554.5455,163.0879,559.596,165.1081,554.5455,167.1283,556.5657,165.1081" style="stroke: #607985; stroke-width: 0.5050505050505051;"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="187.8788" x2="557.5758" y1="165.1081" y2="165.1081"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" lengthAdjust="spacingAndGlyphs" textLength="64.6465" x="341.9192" y="159.4002">return to caller</text><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="560.6061" x2="581.8182" y1="199.6015" y2="199.6015"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="581.8182" x2="581.8182" y1="199.6015" y2="206.1671"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="561.1111" x2="581.8182" y1="206.1671" y2="206.1671"/><polygon fill="#607985" points="566.1616,204.1469,561.1111,206.1671,566.1616,208.1873,564.1414,206.1671" style="stroke: #607985; stroke-width: 0.5050505050505051;"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="8.0808" x="567.1717" y="193.8935">10</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" lengthAdjust="spacingAndGlyphs" textLength="129.2929" x="579.2929" y="193.8935">marker after_raise; request stop</text><polygon fill="#607985" points="193.4343,225.509,188.3838,227.5292,193.4343,229.5494,191.4141,227.5292" style="stroke: #607985; stroke-width: 0.5050505050505051;"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="190.404" x2="560.101" y1="227.5292" y2="227.5292"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" lengthAdjust="spacingAndGlyphs" textLength="133.3333" x="307.5758" y="221.8212">self-delete after bounded cleanup</text><polygon fill="#607985" points="193.4343,246.8711,188.3838,248.8913,193.4343,250.9115,191.4141,248.8913" style="stroke: #607985; stroke-width: 0.5050505050505051;"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="190.404" x2="714.6465" y1="248.8913" y2="248.8913"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="8.0808" x="370.7071" y="243.1833">11</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" lengthAdjust="spacingAndGlyphs" textLength="149.4949" x="382.8283" y="243.1833">second peer finishes and self-deletes</text><polygon fill="#607985" points="833.3333,281.3644,838.3838,283.3846,833.3333,285.4048,835.3535,283.3846" style="stroke: #607985; stroke-width: 0.5050505050505051;"/><line style="stroke: #607985; stroke-width: 0.6565656565656567;" x1="187.8788" x2="836.3636" y1="283.3846" y2="283.3846"/><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="8.0808" x="428.7879" y="277.6767">12</text><text fill="#425B67" font-family="DejaVu Sans Mono" font-size="7.0707" lengthAdjust="spacingAndGlyphs" textLength="157.5758" x="440.9091" y="277.6767">lowest-priority verifier publishes PASS</text><path d="M129.2929,289.9503 L129.2929,314.6978 L897.4747,314.6978 L897.4747,295.0008 L892.4242,289.9503 L129.2929,289.9503 " fill="#F7F5ED" style="stroke: #8A887C; stroke-width: 0.5050505050505051;"/><path d="M892.4242,289.9503 L892.4242,295.0008 L897.4747,295.0008 L892.4242,289.9503 " fill="#F7F5ED" style="stroke: #8A887C; stroke-width: 0.5050505050505051;"/><text fill="#3E4B50" font-family="DejaVu Sans Mono" font-size="6.0606" lengthAdjust="spacingAndGlyphs" textLength="187.3737" x="394.4444" y="301.1314">Exact claim: marker projection before → HIGH → after.</text><text fill="#3E4B50" font-family="DejaVu Sans Mono" font-size="6.0606" lengthAdjust="spacingAndGlyphs" textLength="233.3333" x="394.4444" y="308.1864">Another Ready task may legally run before peerA is selected again.</text><!--MD5=[c6db4b1d8c2cb9893babda8a162190af]
|
|
@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 900 width
|
|
hide footbox
|
|
skinparam ParticipantPadding 16
|
|
|
|
participant "main" as Main
|
|
participant "Scheduler" as Scheduler
|
|
participant "tick hook" as Tick
|
|
participant "high probe" as High
|
|
participant "peerA" as A
|
|
participant "peerB" as B
|
|
participant "verifier" as Verify
|
|
|
|
A -> A : <b>08</b> marker before_raise
|
|
A -> Scheduler : vTaskPrioritySet(high, 3)
|
|
activate Scheduler
|
|
Scheduler -> High : <b>09</b> immediate higher-priority selection
|
|
activate High
|
|
High -> High : marker HIGH
|
|
High -> Scheduler : vTaskDelete(NULL)
|
|
deactivate High
|
|
Scheduler -> A : return to caller
|
|
deactivate Scheduler
|
|
||26||
|
|
A -> A : <b>10</b> marker after_raise; request stop
|
|
A -> Scheduler : self-delete after bounded cleanup
|
|
B -> Scheduler : <b>11</b> second peer finishes and self-deletes
|
|
||26||
|
|
Scheduler -> Verify : <b>12</b> lowest-priority verifier publishes PASS
|
|
|
|
note over Scheduler,Verify
|
|
Exact claim: marker projection before → HIGH → after.
|
|
Another Ready task may legally run before peerA is selected again.
|
|
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> |