Files

48 lines
15 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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="700.2719px" preserveAspectRatio="none" style="width:121px;height:700px;" version="1.1" viewBox="0 0 121 700" width="121.8946px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="116.0901" x="0.8292" y="5.3186">A6 STATE — value and pending are separate state</text><ellipse cx="37.522" cy="14.2393" fill="#000000" rx="4.1461" ry="4.1461" style="stroke: none; stroke-width: 0.4146074215970701;"/><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="34.4124" x="20.3158" y="50.7248"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="20.3158" x2="54.7282" y1="61.6472" y2="61.6472"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="26.1203" x="24.4618" y="58.1164">ClearCount</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="39.3877" x="17.8281" y="103.7945"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="17.8281" x2="57.2158" y1="114.717" y2="114.717"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="31.0956" x="21.9742" y="111.1862">WaitingCount</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="24.8764" x="25.0837" y="156.8643"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="25.0837" x2="49.9602" y1="167.7867" y2="167.7867"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="16.5843" x="29.2298" y="164.2559">Count3</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="43.5338" x="15.7551" y="209.934"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="15.7551" x2="59.2889" y1="220.8565" y2="220.8565"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="35.2416" x="19.9012" y="217.3257">ClearOverwrite</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="48.5091" x="13.2674" y="263.0038"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="13.2674" x2="61.7765" y1="273.9262" y2="273.9262"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="40.2169" x="17.4135" y="270.3954">WaitingOverwrite</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="26.9495" x="24.0472" y="316.0735"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="24.0472" x2="50.9967" y1="326.996" y2="326.996"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="18.6573" x="28.1933" y="323.4652">Value11</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="26.9495" x="24.0472" y="369.1433"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="24.0472" x2="50.9967" y1="380.0657" y2="380.0657"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="18.6573" x="28.1933" y="376.5349">Value22</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="29.4371" x="22.8034" y="422.213"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="22.8034" x2="52.2405" y1="433.1355" y2="433.1355"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="21.145" x="26.9495" y="429.6047">ClearBits</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="34.4124" x="20.3158" y="475.2828"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="20.3158" x2="54.7282" y1="486.2052" y2="486.2052"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="26.1203" x="24.4618" y="482.6744">WaitingBits</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="22.8034" x="26.1203" y="528.3525"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="26.1203" x2="48.9237" y1="539.275" y2="539.275"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="14.5113" x="30.2663" y="535.7442">Bits04</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="22.8034" x="26.1203" y="581.4223"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="26.1203" x2="48.9237" y1="592.3447" y2="592.3447"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="14.5113" x="30.2663" y="588.8139">Bits24</text><rect fill="#EDF6FA" height="20.7304" rx="5.1826" ry="5.1826" style="stroke: #2C7794; stroke-width: 0.6219111323956051;" width="33.1686" x="20.9377" y="634.492"/><line style="stroke: #2C7794; stroke-width: 0.6219111323956051;" x1="20.9377" x2="54.1063" y1="645.4145" y2="645.4145"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="24.8764" x="25.0837" y="641.8837">ClearDone</text><ellipse cx="37.522" cy="691.7079" fill="none" rx="4.1461" ry="4.1461" style="stroke: #000000; stroke-width: 0.4146074215970701;"/><ellipse cx="37.7293" cy="691.9152" fill="#000000" rx="2.4876" ry="2.4876" style="stroke: none; stroke-width: 0.4146074215970701;"/><!--MD5=[aa79c0dfa7f5fc89022f46b76edeca62]
link *start to ClearCount--><path d="M37.522,18.5761 C37.522,25.015 37.522,38.0917 37.522,47.9718 " fill="none" id="*start-&gt;ClearCount" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,50.0365,39.1804,46.3051,37.522,47.9635,35.8635,46.3051,37.522,50.0365" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="56.8012" x="37.9366" y="36.5569">01 value=0 / not pending</text><!--MD5=[b52e7986f564b39b084ae4518af87ccf]
link ClearCount to WaitingCount--><path d="M37.522,71.5754 C37.522,79.9961 37.522,92.0487 37.522,101.112 " fill="none" id="ClearCount-&gt;WaitingCount" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,103.0773,39.1804,99.3458,37.522,101.0042,35.8635,99.3458,37.522,103.0773" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="16.5843" x="37.9366" y="89.6266">03 wait</text><!--MD5=[4145ed3142cf9d3319e10df67184b58f]
link WaitingCount to Count3--><path d="M37.522,124.6451 C37.522,133.0658 37.522,145.1184 37.522,154.1818 " fill="none" id="WaitingCount-&gt;Count3" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,156.147,39.1804,152.4155,37.522,154.074,35.8635,152.4155,37.522,156.147" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="32.754" x="37.9366" y="142.6964">04 three gives</text><!--MD5=[e16867f4c55c58ba9da07ab4b1e7d7eb]
link Count3 to ClearOverwrite--><path d="M37.522,177.7149 C37.522,186.1356 37.522,198.1882 37.522,207.2515 " fill="none" id="Count3-&gt;ClearOverwrite" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,209.2168,39.1804,205.4853,37.522,207.1437,35.8635,205.4853,37.522,209.2168" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="60.9473" x="37.9366" y="195.7661">05 take(pdTRUE) returns 3</text><!--MD5=[d6050c75e9622cfe67786c79099a4008]
link ClearOverwrite to WaitingOverwrite--><path d="M37.522,230.7846 C37.522,239.2053 37.522,251.2579 37.522,260.3213 " fill="none" id="ClearOverwrite-&gt;WaitingOverwrite" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,262.2865,39.1804,258.555,37.522,260.2135,35.8635,258.555,37.522,262.2865" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="16.5843" x="37.9366" y="248.8359">06 wait</text><!--MD5=[2901087193876a3d6403d63aa8fe6a7f]
link WaitingOverwrite to Value11--><path d="M37.522,283.8544 C37.522,292.2751 37.522,304.3277 37.522,313.391 " fill="none" id="WaitingOverwrite-&gt;Value11" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,315.3563,39.1804,311.6248,37.522,313.2832,35.8635,311.6248,37.522,315.3563" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="34.4124" x="37.9366" y="301.9056">overwrite 0x11</text><!--MD5=[3037f5bf8c5e6df15638f7820ae6f023]
link Value11 to Value22--><path d="M37.522,336.9241 C37.522,345.3448 37.522,357.3974 37.522,366.4608 " fill="none" id="Value11-&gt;Value22" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,368.426,39.1804,364.6945,37.522,366.353,35.8635,364.6945,37.522,368.426" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="34.4124" x="37.9366" y="354.9753">overwrite 0x22</text><!--MD5=[c1dc7af154e6bb9e545f1a1805bad967]
link Value22 to ClearBits--><path d="M37.522,389.9939 C37.522,398.4146 37.522,410.4672 37.522,419.5305 " fill="none" id="Value22-&gt;ClearBits" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,421.4958,39.1804,417.7643,37.522,419.4227,35.8635,417.7643,37.522,421.4958" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="47.2652" x="37.9366" y="408.0451">08 wait returns 0x22</text><!--MD5=[65ddf8f0c153482801c350cf97d660ef]
link ClearBits to WaitingBits--><path d="M37.522,443.0636 C37.522,451.4843 37.522,463.5369 37.522,472.6003 " fill="none" id="ClearBits-&gt;WaitingBits" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,474.5655,39.1804,470.834,37.522,472.4925,35.8635,470.834,37.522,474.5655" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="16.5843" x="37.9366" y="461.1148">09 wait</text><!--MD5=[24839fcc82c40bd30bbf99a6a6884882]
link WaitingBits to Bits04--><path d="M37.522,496.1334 C37.522,504.5541 37.522,516.6067 37.522,525.67 " fill="none" id="WaitingBits-&gt;Bits04" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,527.6353,39.1804,523.9038,37.522,525.5622,35.8635,523.9038,37.522,527.6353" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="19.4865" x="37.9366" y="514.1846">set 0x04</text><!--MD5=[7f356506a04720f9dbc97330ceca7dea]
link Bits04 to Bits24--><path d="M37.522,549.2031 C37.522,557.6238 37.522,569.6764 37.522,578.7398 " fill="none" id="Bits04-&gt;Bits24" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,580.705,39.1804,576.9735,37.522,578.632,35.8635,576.9735,37.522,580.705" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="19.0719" x="37.9366" y="567.2543">OR 0x20</text><!--MD5=[d8f8d90a6ce6015c029527d831e1e56e]
link Bits24 to ClearDone--><path d="M37.522,602.2729 C37.522,610.6936 37.522,622.7462 37.522,631.8095 " fill="none" id="Bits24-&gt;ClearDone" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,633.7748,39.1804,630.0433,37.522,631.7017,35.8635,630.0433,37.522,633.7748" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="47.2652" x="37.9366" y="620.3241">11 wait returns 0x24</text><!--MD5=[7fa83533cf7de79a685fa05b81ee1065]
link ClearDone to *end--><path d="M37.522,655.3717 C37.522,664.3272 37.522,677.1385 37.522,684.7963 " fill="none" id="ClearDone-&gt;*end" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><polygon fill="#A80036" points="37.522,686.7409,39.1804,683.0094,37.522,684.6678,35.8635,683.0094,37.522,686.7409" style="stroke: #A80036; stroke-width: 0.4146074215970701;"/><text fill="#000000" font-family="Monospace" font-size="4.9753" lengthAdjust="spacingAndGlyphs" textLength="19.0719" x="37.9366" y="673.3938">12 PASS</text><!--MD5=[846cdcac35d037402c206a6561bdab6e]
@startuml
scale 700 height
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName Monospace
skinparam defaultFontSize 12
skinparam stateBorderColor #2c7794
skinparam stateBackgroundColor #edf6fa
title A6 STATE — value and pending are separate state
[*] - -> ClearCount : 01 value=0 / not pending
ClearCount - -> WaitingCount : 03 wait
WaitingCount - -> Count3 : 04 three gives
Count3 - -> ClearOverwrite : 05 take(pdTRUE) returns 3
ClearOverwrite - -> WaitingOverwrite : 06 wait
WaitingOverwrite - -> Value11 : overwrite 0x11
Value11 - -> Value22 : overwrite 0x22
Value22 - -> ClearBits : 08 wait returns 0x22
ClearBits - -> WaitingBits : 09 wait
WaitingBits - -> Bits04 : set 0x04
Bits04 - -> Bits24 : OR 0x20
Bits24 - -> ClearDone : 11 wait returns 0x24
ClearDone - -> [*] : 12 PASS
@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>