Compare commits

...

8 commits

6 changed files with 1543 additions and 252 deletions

View file

@ -702,10 +702,10 @@
<node CREATED="1785877094220" ID="ID_1651644833" MODIFIED="1785877434241" TEXT="Diagramm &quot;Application setup&quot;"/>
</node>
<node CREATED="1753975388927" ID="ID_844470552" MODIFIED="1785876443685" TEXT="Code-Beispiele">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785873575052" ID="ID_1698936757" MODIFIED="1786245908602" TEXT="Producer-Consumer">
<node COLOR="#338800" CREATED="1785873575052" ID="ID_1698936757" MODIFIED="1786645656227" TEXT="Producer-Consumer">
<linktarget COLOR="#53387c" DESTINATION="ID_1698936757" ENDARROW="Default" ENDINCLINATION="-204;-288;" ID="Arrow_ID_1007251265" SOURCE="ID_564793830" STARTARROW="None" STARTINCLINATION="-119;11;"/>
<linktarget COLOR="#53387c" DESTINATION="ID_1698936757" ENDARROW="Default" ENDINCLINATION="-204;-288;" ID="Arrow_ID_1915855216" SOURCE="ID_537337249" STARTARROW="None" STARTINCLINATION="-340;56;"/>
<icon BUILTIN="flag-yellow"/>
<linktarget COLOR="#53387c" DESTINATION="ID_1698936757" ENDARROW="Default" ENDINCLINATION="-206;113;" ID="Arrow_ID_1915855216" SOURCE="ID_537337249" STARTARROW="None" STARTINCLINATION="-340;56;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1786245652055" ID="ID_798071934" MODIFIED="1786245789280">
<richcontent TYPE="NODE"><html>
<head>
@ -954,8 +954,8 @@
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1786242211296" ID="ID_1804746347" MODIFIED="1786413275128" TEXT="Kleinvieh....">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1786242211296" ID="ID_1804746347" MODIFIED="1786663227758" TEXT="Kleinvieh....">
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1786242217560" ID="ID_1208716837" MODIFIED="1786242229913" TEXT="a queue for Submissions"/>
<node CREATED="1786242230765" ID="ID_120169631" MODIFIED="1786242235257" TEXT="a queue for Completions"/>
@ -1012,9 +1012,9 @@
</node>
</node>
<node CREATED="1786245528744" ID="ID_891133446" MODIFIED="1786245544593" TEXT="Example: producer &#x27f6; consumer">
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1785791243995" ID="ID_537337249" MODIFIED="1786413252613" TEXT="Code-Beispiel">
<arrowlink COLOR="#53387c" DESTINATION="ID_1698936757" ENDARROW="Default" ENDINCLINATION="-204;-288;" ID="Arrow_ID_1915855216" STARTARROW="None" STARTINCLINATION="-340;56;"/>
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1785791243995" ID="ID_537337249" MODIFIED="1786645653140" TEXT="Code-Beispiel">
<arrowlink COLOR="#53387c" DESTINATION="ID_1698936757" ENDARROW="Default" ENDINCLINATION="-206;113;" ID="Arrow_ID_1915855216" STARTARROW="None" STARTINCLINATION="-340;56;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1786245936803" ID="ID_1211062148" MODIFIED="1786245940949" TEXT="Zonen">
<node CREATED="1786245941715" ID="ID_167190015" MODIFIED="1786245945822" TEXT="Deklaration"/>
<node CREATED="1786245946151" ID="ID_1870232563" MODIFIED="1786245948582" TEXT="Producer"/>
@ -1111,9 +1111,9 @@
<node CREATED="1786298283402" ID="ID_1682945175" MODIFIED="1786298292387" TEXT="show implementation of PixelFeed"/>
<node CREATED="1786298394770" ID="ID_1136560741" MODIFIED="1786298397453" TEXT="show methods"/>
<node CREATED="1786298398153" ID="ID_519557401" MODIFIED="1786298416627" TEXT="Thread binds &#x27f6; playVideo()"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1786299984706" ID="ID_203769685" MODIFIED="1786456125776" TEXT="Diagram: thread-handoff">
<node COLOR="#338800" CREATED="1786299984706" ID="ID_203769685" MODIFIED="1786645672689" TEXT="Diagram: thread-handoff">
<arrowlink COLOR="#2d545f" DESTINATION="ID_1123988986" ENDARROW="Default" ENDINCLINATION="-1879;-116;" ID="Arrow_ID_395148395" STARTARROW="None" STARTINCLINATION="-1226;128;"/>
<icon BUILTIN="flag-pink"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
@ -1162,8 +1162,9 @@
</node>
</node>
<node CREATED="1786299650606" ID="ID_1358348030" MODIFIED="1786299654447" TEXT="state definition">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1786506976676" ID="ID_305985132" MODIFIED="1786506978969" TEXT="use of state per slot...">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1786506976676" ID="ID_305985132" MODIFIED="1786660990622" TEXT="use of state per slot...">
<arrowlink COLOR="#627a97" DESTINATION="ID_1806019726" ENDARROW="Default" ENDINCLINATION="844;-50;" ID="Arrow_ID_1270577683" STARTARROW="None" STARTINCLINATION="506;72;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
<node CREATED="1786329171661" ID="ID_652095992" MODIFIED="1786329177583" TEXT="cursor nextShow_">
@ -1201,8 +1202,8 @@
</node>
</node>
<node CREATED="1754271624646" ID="ID_52826289" MODIFIED="1754271626857" TEXT="Grafik">
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1785817833206" ID="ID_327257827" MODIFIED="1785877136327" TEXT="Diagramm &quot;Time Scales&quot;">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1785817833206" ID="ID_327257827" MODIFIED="1786640246119" TEXT="Diagramm &quot;Time Scales&quot;">
<icon BUILTIN="button_ok"/>
<node CREATED="1785817842583" ID="ID_306380330" MODIFIED="1785817861311" TEXT="Idee: m&#xf6;chte die gewaltigen Zeitspannen visualisieren">
<icon BUILTIN="idea"/>
<node CREATED="1785817863252" ID="ID_299103430" MODIFIED="1785817884168" TEXT="m&#xf6;chte klarmachen, warum wir es mit &#xbb;Stockwerken&#xab; zu tun haben"/>
@ -1294,21 +1295,21 @@
<node COLOR="#338800" CREATED="1785818905823" ID="ID_1365657985" MODIFIED="1786633104328" TEXT="Diagramm grafisch ausfeilen und an Seitenlayout anpassen">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1786633085054" ID="ID_1243923715" MODIFIED="1786633099526" TEXT="Auszug f&#xfc;r Ver&#xe4;nderung Disk-Access">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1786633085054" ID="ID_1243923715" MODIFIED="1786640243900" TEXT="Auszug f&#xfc;r Ver&#xe4;nderung Disk-Access">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1786245320212" ID="ID_1882333702" MODIFIED="1786295032660" TEXT="Diagramm &quot;cache coherence&quot;">
<node COLOR="#338800" CREATED="1786245320212" ID="ID_1882333702" MODIFIED="1786643758529" TEXT="Diagramm &quot;cache coherence&quot;">
<linktarget COLOR="#687482" DESTINATION="ID_1882333702" ENDARROW="Default" ENDINCLINATION="-722;-1005;" ID="Arrow_ID_1367738858" SOURCE="ID_695911002" STARTARROW="None" STARTINCLINATION="-213;18;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#accdc3" COLOR="#3f4015" CREATED="1786245352847" ID="ID_563431072" MODIFIED="1786245357032" TEXT="coherence.svg">
<icon BUILTIN="wizard"/>
</node>
<node CREATED="1786245367557" ID="ID_1248853430" MODIFIED="1786245382367" TEXT="Animation, die schreib- und Leseoperationen zeigt..."/>
<node COLOR="#006699" CREATED="1786245367557" ID="ID_1248853430" MODIFIED="1786643762078" TEXT="Animation, die schreib- und Leseoperationen zeigt..."/>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1785877291601" ID="ID_517600933" MODIFIED="1786466625791" TEXT="Diagramm &quot;State-Ring&quot;">
<node COLOR="#338800" CREATED="1785877291601" ID="ID_517600933" MODIFIED="1786660999055" TEXT="Diagramm &quot;State-Ring&quot;">
<linktarget COLOR="#c23657" DESTINATION="ID_517600933" ENDARROW="Default" ENDINCLINATION="134;15;" ID="Arrow_ID_670746681" SOURCE="ID_270282240" STARTARROW="None" STARTINCLINATION="23;-122;"/>
<icon BUILTIN="hourglass"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#accdc3" COLOR="#3f4015" CREATED="1785877302464" ID="ID_1725774104" MODIFIED="1785880120631" STYLE="fork" TEXT="Ein Schema ist nebenbei im Chat mit Claude &quot;angefallen&quot;">
<edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
<arrowlink COLOR="#339dbd" DESTINATION="ID_1806019726" ENDARROW="Default" ENDINCLINATION="121;0;" ID="Arrow_ID_938057656" STARTARROW="None" STARTINCLINATION="-30;41;"/>
@ -1317,20 +1318,27 @@
<node CREATED="1785877324133" ID="ID_578045214" MODIFIED="1785877342463" TEXT="hatte ihn das in Graphviz definieren und nach SVG rendern lassen">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1785877343638" ID="ID_801220717" MODIFIED="1785877347896" TEXT="brauchbar?">
<node COLOR="#006699" CREATED="1785877343638" ID="ID_801220717" MODIFIED="1786661002146" TEXT="brauchbar?">
<icon BUILTIN="help"/>
<node CREATED="1786661006589" ID="ID_1093573746" MODIFIED="1786661048132" TEXT="ja: habs vor dem State-Ring eingebaut"/>
<node CREATED="1786661020642" ID="ID_1076990072" MODIFIED="1786661039901" TEXT="sogar sehr wichtig, man mu&#xdf; die State-Engine wenigstenseinmal sehen"/>
<node COLOR="#338800" CREATED="1786661049458" ID="ID_1526572846" MODIFIED="1786661056718" TEXT="hab das Layout umgestellt">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785880050158" ID="ID_1806019726" MODIFIED="1785880116038" TEXT="Diagramm &quot;State-Engine&quot;">
</node>
<node COLOR="#338800" CREATED="1785880050158" ID="ID_1806019726" MODIFIED="1786660987043" TEXT="Diagramm &quot;State-Engine&quot;">
<linktarget COLOR="#339dbd" DESTINATION="ID_1806019726" ENDARROW="Default" ENDINCLINATION="121;0;" ID="Arrow_ID_938057656" SOURCE="ID_1725774104" STARTARROW="None" STARTINCLINATION="-30;41;"/>
<icon BUILTIN="flag-yellow"/>
<linktarget COLOR="#627a97" DESTINATION="ID_1806019726" ENDARROW="Default" ENDINCLINATION="844;-50;" ID="Arrow_ID_1270577683" SOURCE="ID_305985132" STARTARROW="None" STARTINCLINATION="506;72;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1786656669970" HGAP="36" ID="ID_817187689" MODIFIED="1786656686513" TEXT="Diagramm: Beschriftungen vereinfachen..." VSHIFT="9"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785880050158" ID="ID_1123988986" MODIFIED="1786456139155" TEXT="Diagramm &quot;Thread-handoff&quot;">
<node COLOR="#338800" CREATED="1785880050158" ID="ID_1123988986" MODIFIED="1786640284601" TEXT="Diagramm &quot;Thread-handoff&quot;">
<linktarget COLOR="#2d545f" DESTINATION="ID_1123988986" ENDARROW="Default" ENDINCLINATION="-1879;-116;" ID="Arrow_ID_395148395" SOURCE="ID_203769685" STARTARROW="None" STARTINCLINATION="-1226;128;"/>
<linktarget COLOR="#339dbd" DESTINATION="ID_1123988986" ENDARROW="Default" ENDINCLINATION="121;0;" ID="Arrow_ID_1210919925" SOURCE="ID_1725774104" STARTARROW="None" STARTINCLINATION="-30;41;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1786456142877" HGAP="42" ID="ID_724342124" MODIFIED="1786456162177" TEXT="visuell klarer machen" VSHIFT="19">
<icon BUILTIN="button_ok"/>
<node COLOR="#006699" CREATED="1786456142877" HGAP="42" ID="ID_724342124" MODIFIED="1786640276274" TEXT="visuell klarer machen" VSHIFT="19">
<icon BUILTIN="yes"/>
</node>
</node>
@ -1385,26 +1393,26 @@
<icon BUILTIN="full-5"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785876360880" ID="ID_1803475906" MODIFIED="1785876380352" TEXT="Animation: Producer &#x27f6; Consumer | Fences">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1785876360880" ID="ID_1803475906" MODIFIED="1786645685862" TEXT="Animation: Producer &#x27f6; Consumer | Fences">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785877864405" ID="ID_400522389" MODIFIED="1785877870203" TEXT="Animation: State-Ring">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785877864405" ID="ID_400522389" MODIFIED="1786661072794" TEXT="Animation: State-Ring">
<icon BUILTIN="button_cancel"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785877113392" ID="ID_23421813" MODIFIED="1785877124875" TEXT="Animation: Application-Setup">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1785877113392" ID="ID_23421813" MODIFIED="1786645690581" TEXT="Animation: Application-Setup">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1786466566730" ID="ID_57913077" MODIFIED="1786466585119" TEXT="Animation: Player and Displayer-Object">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1786466566730" ID="ID_57913077" MODIFIED="1786645693729" TEXT="Animation: Player and Displayer-Object">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1786466585843" ID="ID_1116610832" MODIFIED="1786466590526" TEXT="Animation: Proactor">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1786466585843" ID="ID_1116610832" MODIFIED="1786661099951" TEXT="Animation: Proactor">
<icon BUILTIN="button_ok"/>
<node CREATED="1786466604005" ID="ID_270282240" MODIFIED="1786466632751" TEXT="integrate animated State-Ring">
<arrowlink COLOR="#c23657" DESTINATION="ID_517600933" ENDARROW="Default" ENDINCLINATION="134;15;" ID="Arrow_ID_670746681" STARTARROW="None" STARTINCLINATION="23;-122;"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1786466591383" ID="ID_1030877081" MODIFIED="1786466602726" TEXT="Animation: show Frame">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1786466591383" ID="ID_1030877081" MODIFIED="1786661101443" TEXT="Animation: show Frame">
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
@ -1547,6 +1555,14 @@
</node>
</node>
</node>
<node CREATED="1786636300246" ID="ID_1556964088" MODIFIED="1786636303349" TEXT="Grafik-Elemente">
<node CREATED="1786636311908" ID="ID_967224913" MODIFIED="1786636315921" TEXT="radial highlight">
<node CREATED="1786636317638" ID="ID_1446984633" MODIFIED="1786636323244" TEXT="Elipse machen"/>
<node CREATED="1786636323560" ID="ID_1750225876" MODIFIED="1786636329490" TEXT="solid fill (yellow)"/>
<node CREATED="1786636330423" ID="ID_890201987" MODIFIED="1786636338504" TEXT="dann aber transparency radial"/>
<node CREATED="1786636338987" ID="ID_926004869" MODIFIED="1786636348707" TEXT="und border etwa 30%"/>
</node>
</node>
<node CREATED="1786417787916" ID="ID_1621049515" MODIFIED="1786417794895" TEXT="Code aus Eclipse">
<node CREATED="1786417797530" ID="ID_1170402440" MODIFIED="1786417869822" TEXT="Methode: Print-to-SVG">
<arrowlink COLOR="#284abc" DESTINATION="ID_1802306052" ENDARROW="Default" ENDINCLINATION="-386;101;" ID="Arrow_ID_884782059" STARTARROW="None" STARTINCLINATION="-430;-61;"/>
@ -1695,8 +1711,8 @@
<icon BUILTIN="hourglass"/>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1755783306798" ID="ID_1759870777" MODIFIED="1786458962467" TEXT="QR-Code generieren">
<icon BUILTIN="flag-pink"/>
<node COLOR="#338800" CREATED="1755783306798" ID="ID_1759870777" MODIFIED="1786661113418" TEXT="QR-Code generieren">
<icon BUILTIN="button_ok"/>
<node CREATED="1755783346775" ID="ID_1172562149" MODIFIED="1755783365282">
<richcontent TYPE="NODE"><html>
<head/>

Binary file not shown.

View file

@ -1,47 +1,386 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="254.0mm"
height="142.9mm"
viewBox="0 0 254.0 142.9"
version="1.1"
id="svg22"
sodipodi:docname="coherence.svg"
inkscape:export-filename="../coherence-2.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
width="254.0mm" height="142.9mm" viewBox="0 0 254.0 142.9" version="1.1">
<sodipodi:namedview inkscape:document-units="mm" units="mm"/>
<title>Cache coherence and observability</title>
<g inkscape:groupmode="layer" id="layer-1-scaffold" inkscape:label="1 - scaffold (x=0 everywhere)" style="display:inline">
<defs><marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="#555555"/></marker></defs>
<rect x="44.00" y="24.00" width="46.00" height="20.00" rx="2.0" fill="#ffffff" stroke="#222222" stroke-width="0.8"/>
<text x="67.00" y="35.80" font-family="DejaVu Sans, Verdana, sans-serif" font-size="5.5" font-weight="600" fill="#222222" text-anchor="middle">Core</text>
<rect x="164.00" y="24.00" width="46.00" height="20.00" rx="2.0" fill="#ffffff" stroke="#222222" stroke-width="0.8"/>
<text x="187.00" y="35.80" font-family="DejaVu Sans, Verdana, sans-serif" font-size="5.5" font-weight="600" fill="#222222" text-anchor="middle">Core</text>
<path d="M 67.00,44.00 L 67.00,58.00" stroke="#555555" stroke-width="0.6" fill="none" marker-end="url(#arrow)"/>
<path d="M 187.00,44.00 L 187.00,58.00" stroke="#555555" stroke-width="0.6" fill="none" marker-end="url(#arrow)"/>
<path d="M 67.00,80.00 L 67.00,110.00" stroke="#555555" stroke-width="0.6" fill="none"/>
<path d="M 67.00,110.00 L 90.00,104.00" stroke="#555555" stroke-width="0.6" fill="none"/>
<path d="M 187.00,80.00 L 187.00,110.00" stroke="#555555" stroke-width="0.6" fill="none"/>
<path d="M 187.00,110.00 L 164.00,104.00" stroke="#555555" stroke-width="0.6" fill="none"/>
<rect x="44.00" y="58.00" width="46.00" height="22.00" rx="2.0" fill="#f2f2f2" stroke="#222222" stroke-width="0.8"/>
<rect x="164.00" y="58.00" width="46.00" height="22.00" rx="2.0" fill="#f2f2f2" stroke="#222222" stroke-width="0.8"/>
<text x="67.00" y="64.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="4.2" font-weight="600" fill="#222222" text-anchor="middle">Cache</text>
<text x="187.00" y="64.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="4.2" font-weight="600" fill="#222222" text-anchor="middle">Cache</text>
<text x="67.00" y="74.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="6.5" font-weight="700" fill="#8a8a8a" text-anchor="middle">x = 0</text>
<text x="187.00" y="74.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="6.5" font-weight="700" fill="#8a8a8a" text-anchor="middle">x = 0</text>
<rect x="82.00" y="104.00" width="90.00" height="24.00" rx="2.0" fill="#f2f2f2" stroke="#222222" stroke-width="0.8"/>
<text x="127.00" y="111.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="4.2" font-weight="600" fill="#222222" text-anchor="middle">DRAM</text>
<text x="127.00" y="122.50" font-family="DejaVu Sans, Verdana, sans-serif" font-size="6.5" font-weight="700" fill="#8a8a8a" text-anchor="middle">x = 0</text>
</g>
<g inkscape:groupmode="layer" id="layer-2-core0-write" inkscape:label="2 - core0 writes x=1" style="display:inline">
<rect x="44.00" y="58.00" width="46.00" height="22.00" rx="2.0" fill="#dce8f2" stroke="#14507d" stroke-width="1.1"/>
<text x="67.00" y="64.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="4.2" font-weight="600" fill="#222222" text-anchor="middle">Cache</text>
<text x="67.00" y="74.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="6.5" font-weight="700" fill="#14507d" text-anchor="middle">x = 1</text>
</g>
<g inkscape:groupmode="layer" id="layer-3-core1-read" inkscape:label="3 - core1 reads: still x=0" style="display:inline">
<path d="M 184.00,45.50 C 179.00,51.00 179.00,51.00 184.00,56.50" stroke="#8a8a8a" stroke-width="0.6" fill="none" marker-end="url(#arrow)"/>
<rect x="164.00" y="58.00" width="46.00" height="22.00" rx="2.0" fill="#f2f2f2" stroke="#8a8a8a" stroke-width="1.1"/>
<text x="187.00" y="64.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="4.2" font-weight="600" fill="#222222" text-anchor="middle">Cache</text>
<text x="187.00" y="74.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="6.5" font-weight="700" fill="#8a8a8a" text-anchor="middle">x = 0</text>
</g>
<g inkscape:groupmode="layer" id="layer-4-propagate" inkscape:label="4 - later: DRAM sees x=1, core1 still stale" style="display:inline">
<circle cx="119.0" cy="95.0" r="0.7" fill="#8a8a8a"/><circle cx="123.0" cy="95.0" r="0.7" fill="#8a8a8a"/><circle cx="127.0" cy="95.0" r="0.7" fill="#8a8a8a"/><circle cx="131.0" cy="95.0" r="0.7" fill="#8a8a8a"/><circle cx="135.0" cy="95.0" r="0.7" fill="#8a8a8a"/>
<rect x="82.00" y="104.00" width="90.00" height="24.00" rx="2.0" fill="#dce8f2" stroke="#14507d" stroke-width="1.1"/>
<text x="127.00" y="111.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="4.2" font-weight="600" fill="#222222" text-anchor="middle">DRAM</text>
<text x="127.00" y="122.50" font-family="DejaVu Sans, Verdana, sans-serif" font-size="6.5" font-weight="700" fill="#14507d" text-anchor="middle">x = 1</text>
</g>
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs22" />
<sodipodi:namedview
inkscape:document-units="mm"
units="mm"
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="2.0378142"
inkscape:cx="479.926"
inkscape:cy="286.82694"
inkscape:window-width="1920"
inkscape:window-height="1057"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer-3-core1-read" />
<title
id="title1">Cache coherence and observability</title>
<g
inkscape:groupmode="layer"
id="layer-1-scaffold"
inkscape:label="1 - scaffold (x=0 everywhere)"
style="display:inline">
<defs
id="defs1">
<marker
id="arrow"
viewBox="0 0 10 10"
refX="8"
refY="5"
markerWidth="6"
markerHeight="6"
orient="auto-start-reverse">
<path
d="M 0,0 10,5 0,10 Z"
fill="#555555"
id="path1" />
</marker>
</defs>
<rect
x="44"
y="24"
width="46"
height="20"
rx="2"
fill="#ffffff"
stroke="#222222"
stroke-width="0.8"
id="rect1" />
<text
x="67"
y="35.799999"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="5.5px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text1">Core</text>
<rect
x="164"
y="24"
width="46"
height="20"
rx="2"
fill="#ffffff"
stroke="#222222"
stroke-width="0.8"
id="rect2" />
<text
x="187"
y="35.799999"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="5.5px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text2">Core</text>
<path
d="M 67,44 V 58"
stroke="#555555"
stroke-width="0.6"
fill="none"
marker-end="url(#arrow)"
id="path2" />
<path
d="M 187,44 V 58"
stroke="#555555"
stroke-width="0.6"
fill="none"
marker-end="url(#arrow)"
id="path3" />
<path
d="m 67,80 v 30"
stroke="#555555"
stroke-width="0.6"
fill="none"
id="path4" />
<path
d="m 67,110 23,-6"
stroke="#555555"
stroke-width="0.6"
fill="none"
id="path5" />
<path
d="m 187,80 v 30"
stroke="#555555"
stroke-width="0.6"
fill="none"
id="path6" />
<path
d="m 187,110 -23,-6"
stroke="#555555"
stroke-width="0.6"
fill="none"
id="path7" />
<rect
x="44"
y="58"
width="46"
height="22"
rx="2"
fill="#f2f2f2"
stroke="#222222"
stroke-width="0.8"
id="rect7" />
<rect
x="164"
y="58"
width="46"
height="22"
rx="2"
fill="#f2f2f2"
stroke="#222222"
stroke-width="0.8"
id="rect8" />
<text
x="67"
y="64"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="4.2px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text8">Cache</text>
<text
x="187"
y="64"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="4.2px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text9">Cache</text>
<text
x="67"
y="74"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="6.5px"
font-weight="700"
fill="#8a8a8a"
text-anchor="middle"
id="text10">x = 0</text>
<text
x="187"
y="74"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="6.5px"
font-weight="700"
fill="#8a8a8a"
text-anchor="middle"
id="text11">x = 0</text>
<rect
x="82"
y="104"
width="90"
height="24"
rx="2"
fill="#f2f2f2"
stroke="#222222"
stroke-width="0.8"
id="rect11" />
<text
x="127"
y="111"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="4.2px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text12">DRAM</text>
<text
x="127"
y="122.5"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="6.5px"
font-weight="700"
fill="#8a8a8a"
text-anchor="middle"
id="text13">x = 0</text>
</g>
<g
inkscape:groupmode="layer"
id="layer-2-core0-write"
inkscape:label="2 - core0 writes x=1"
style="display:inline">
<rect
x="44"
y="58"
width="46"
height="22"
rx="2"
fill="#dce8f2"
stroke="#14507d"
stroke-width="1.1"
id="rect13" />
<text
x="67"
y="64"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="4.2px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text14">Cache</text>
<text
x="67"
y="74"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="6.5px"
font-weight="700"
fill="#14507d"
text-anchor="middle"
id="text15">x = 1</text>
</g>
<g
inkscape:groupmode="layer"
id="layer-3-core1-read"
inkscape:label="3 - core1 reads: still x=0"
style="display:inline">
<rect
x="164"
y="58"
width="46"
height="22"
rx="2"
fill="#f2f2f2"
stroke="#8a8a8a"
stroke-width="1.1"
id="rect15"
style="stroke:#13b8b9;stroke-opacity:1" />
<text
x="187"
y="64"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="4.2px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text16">Cache</text>
<text
x="187"
y="74"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="6.5px"
font-weight="700"
fill="#8a8a8a"
text-anchor="middle"
id="text17">x = 0</text>
</g>
<g
inkscape:groupmode="layer"
id="layer-4-propagate"
inkscape:label="4 - later: DRAM sees x=1, core1 still stale"
style="display:inline">
<circle
cx="119"
cy="95"
r="0.69999999"
fill="#8a8a8a"
id="circle17" />
<circle
cx="123"
cy="95"
r="0.69999999"
fill="#8a8a8a"
id="circle18" />
<circle
cx="127"
cy="95"
r="0.69999999"
fill="#8a8a8a"
id="circle19" />
<circle
cx="131"
cy="95"
r="0.69999999"
fill="#8a8a8a"
id="circle20" />
<circle
cx="135"
cy="95"
r="0.69999999"
fill="#8a8a8a"
id="circle21" />
<rect
x="82"
y="104"
width="90"
height="24"
rx="2"
fill="#dce8f2"
stroke="#14507d"
stroke-width="1.1"
id="rect21" />
<text
x="127"
y="111"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="4.2px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text21">DRAM</text>
<text
x="127"
y="122.5"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="6.5px"
font-weight="700"
fill="#14507d"
text-anchor="middle"
id="text22">x = 1</text>
</g>
<metadata
id="metadata22">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>Cache coherence and observability</dc:title>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
<dc:description>Animation for the io_uring talk : show several copies of the same variable in CPU caches and main memory</dc:description>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
</svg>

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

View file

@ -1,4 +1,44 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 620 560" font-family="sans-serif">
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 999.99987 829.218"
font-family="sans-serif"
version="1.1"
id="svg30"
sodipodi:docname="ring-buffer.svg"
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
inkscape:export-filename="../state-ring.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
width="14.58cm"
height="12.09cm"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<title
id="title30">State progression in the Ringbuffer</title>
<sodipodi:namedview
id="namedview30"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.5339286"
inkscape:cx="293.03841"
inkscape:cy="227.84633"
inkscape:window-width="1920"
inkscape:window-height="1057"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg30"
inkscape:document-units="cm" />
<!--
Ring-buffer snapshot for the io_uring video demo.
A fixed array of RING_SIZ buffers is used cyclically: slot = frameNr % RING_SIZ.
@ -7,105 +47,752 @@
nextShow_ (consumption) rests on the slot currently shown, advancing on release
This is an illustrative snapshot (START_FRAME = 40, RING_SIZ = 5).
-->
<defs>
<marker id="arrow" markerWidth="9" markerHeight="9" refX="7" refY="4.5"
orient="auto" markerUnits="userSpaceOnUse">
<path d="M0,0 L9,4.5 L0,9 Z" fill="#333"/>
<defs
id="defs2">
<marker
id="arrow"
markerWidth="9"
markerHeight="9"
refX="7"
refY="4.5"
orient="auto"
markerUnits="userSpaceOnUse">
<path
d="M 0,0 9,4.5 0,9 Z"
fill="#333333"
id="path1" />
</marker>
<marker id="arrowRot" markerWidth="10" markerHeight="10" refX="6" refY="5"
orient="auto" markerUnits="userSpaceOnUse">
<path d="M0,0 L10,5 L0,10 Z" fill="#888"/>
<marker
id="arrowRot"
markerWidth="10"
markerHeight="10"
refX="6"
refY="5"
orient="auto"
markerUnits="userSpaceOnUse">
<path
d="M 0,0 10,5 0,10 Z"
fill="#888888"
id="path2" />
</marker>
</defs>
<text x="310" y="34" text-anchor="middle" font-size="18" font-weight="bold">
Buffers used as a ring: slot = frameNr % RING_SIZ
</text>
<!-- rotation hint (clockwise) -->
<path d="M 395 138 A 130 130 0 0 1 452 300" fill="none" stroke="#bbb"
stroke-width="2" stroke-dasharray="4 5" marker-end="url(#arrowRot)"/>
<text x="470" y="320" font-size="12" fill="#999">advances</text>
<!-- ===================== slots ===================== -->
<!-- slot 0 : SHOW (frame 40, currently lent to GUI) -->
<g>
<circle cx="310" cy="120" r="46" fill="#e7d8ff" stroke="#5a2ca0" stroke-width="2.2"/>
<text x="310" y="112" text-anchor="middle" font-size="14" font-weight="bold">SHOW</text>
<text x="310" y="132" text-anchor="middle" font-size="12" fill="#444">frame 40</text>
<text x="372" y="104" text-anchor="middle" font-size="11" fill="#888">slot 0</text>
</g>
<!-- slot 1 : FEED (frame 41, ready to show) -->
<g>
<circle cx="452" cy="203" r="46" fill="#d8f0d8" stroke="#3a7a3a" stroke-width="2.2"/>
<text x="452" y="199" text-anchor="middle" font-size="14" font-weight="bold">FEED</text>
<text x="452" y="219" text-anchor="middle" font-size="12" fill="#444">frame 41</text>
<text x="507" y="200" text-anchor="middle" font-size="11" fill="#888">slot 1</text>
</g>
<!-- slot 2 : READ (frame 42, IO in flight) -->
<g>
<circle cx="398" cy="371" r="46" fill="#ffedcc" stroke="#b8860b" stroke-width="2.2"/>
<text x="398" y="367" text-anchor="middle" font-size="14" font-weight="bold">READ</text>
<text x="398" y="387" text-anchor="middle" font-size="12" fill="#444">frame 42</text>
<text x="398" y="432" text-anchor="middle" font-size="11" fill="#888">slot 2</text>
</g>
<!-- slot 3 : READ (frame 43, IO in flight) -->
<g>
<circle cx="222" cy="371" r="46" fill="#ffedcc" stroke="#b8860b" stroke-width="2.2"/>
<text x="222" y="367" text-anchor="middle" font-size="14" font-weight="bold">READ</text>
<text x="222" y="387" text-anchor="middle" font-size="12" fill="#444">frame 43</text>
<text x="222" y="432" text-anchor="middle" font-size="11" fill="#888">slot 3</text>
</g>
<!-- slot 4 : FREE (next to be submitted) -->
<g>
<circle cx="168" cy="203" r="46" fill="#dbe9ff" stroke="#3a5a8a" stroke-width="2.2"/>
<text x="168" y="199" text-anchor="middle" font-size="14" font-weight="bold">FREE</text>
<text x="168" y="219" text-anchor="middle" font-size="12" fill="#444">—</text>
<text x="113" y="200" text-anchor="middle" font-size="11" fill="#888">slot 4</text>
</g>
<!-- center caption -->
<text x="310" y="258" text-anchor="middle" font-size="13" fill="#666">buffer_[ ]</text>
<text x="310" y="277" text-anchor="middle" font-size="11" fill="#999">RING_SIZ = 5</text>
<!-- ===================== cursors ===================== -->
<!-- nextShow_ -> slot 0 -->
<g>
<rect x="150" y="52" width="150" height="26" rx="5" fill="#f3ecff" stroke="#5a2ca0"/>
<text x="225" y="70" text-anchor="middle" font-size="13" fill="#5a2ca0">
nextShow_ = 40
</text>
<path d="M 278 72 C 300 84, 300 74, 300 96" fill="none" stroke="#5a2ca0"
stroke-width="2" marker-end="url(#arrow)"/>
</g>
<!-- nextRead_ -> slot 4 -->
<g>
<rect x="18" y="120" width="150" height="26" rx="5" fill="#eaf1fb" stroke="#3a5a8a"/>
<text x="93" y="138" text-anchor="middle" font-size="13" fill="#3a5a8a">
nextRead_ = 44
</text>
<path d="M 110 146 C 120 168, 138 168, 150 182" fill="none" stroke="#3a5a8a"
stroke-width="2" marker-end="url(#arrow)"/>
</g>
<!-- ===================== legend ===================== -->
<g font-size="12" transform="translate(40,478)">
<text x="0" y="0" font-weight="bold" font-size="13">States:</text>
<rect x="66" y="-11" width="15" height="15" rx="3" fill="#dbe9ff" stroke="#3a5a8a"/>
<text x="86" y="1">FREE</text>
<rect x="140" y="-11" width="15" height="15" rx="3" fill="#ffedcc" stroke="#b8860b"/>
<text x="160" y="1">READ</text>
<rect x="216" y="-11" width="15" height="15" rx="3" fill="#d8f0d8" stroke="#3a7a3a"/>
<text x="236" y="1">FEED</text>
<rect x="292" y="-11" width="15" height="15" rx="3" fill="#e7d8ff" stroke="#5a2ca0"/>
<text x="312" y="1">SHOW</text>
<rect x="372" y="-11" width="15" height="15" rx="3" fill="#ffd6d6" stroke="#a00000"/>
<text x="392" y="1">STOP</text>
<metadata
id="metadata30">
<rdf:RDF>
<cc:Work
rdf:about="">
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
<dc:title>State progression in the Ringbuffer</dc:title>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
id="drawing">
<path
d="M 715.0571,172.11989 A 235.02157,235.05218 0 0 1 818.10502,465.03107"
fill="none"
stroke="#bbbbbb"
stroke-width="2"
stroke-dasharray="4, 5"
marker-end="url(#arrowRot)"
id="path3" />
<text
x="850.70184"
y="501.16031"
font-size="21.6957px"
fill="#999999"
id="text3"
style="stroke-width:1"
transform="scale(0.99993487,1.0000651)">advances</text>
<g
id="g6"
style="stroke-width:0.553105"
transform="matrix(1.8078582,0,0,1.8080937,0.95311217,-77.397037)">
<circle
cx="310"
cy="120"
r="46"
fill="#e7d8ff"
stroke="#5a2ca0"
stroke-width="1.21683"
id="circle3" />
<text
x="310"
y="112"
text-anchor="middle"
font-size="14px"
font-weight="bold"
id="text4"
style="stroke-width:0.553105">SHOW</text>
<text
x="310"
y="132"
text-anchor="middle"
font-size="12px"
fill="#444444"
id="text5"
style="stroke-width:0.553105">frame 40</text>
<text
x="381.12689"
y="104.65192"
text-anchor="middle"
font-size="11"
fill="#888888"
id="text6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.553105">slot 0</text>
</g>
<g
id="g9"
style="stroke-width:0.553105"
transform="matrix(1.8078582,0,0,1.8080937,0.95311217,-77.397037)">
<circle
cx="452"
cy="203"
r="46"
fill="#d8f0d8"
stroke="#3a7a3a"
stroke-width="1.21683"
id="circle6" />
<text
x="452"
y="199"
text-anchor="middle"
font-size="14px"
font-weight="bold"
id="text7"
style="stroke-width:0.553105">FEED</text>
<text
x="452"
y="219"
text-anchor="middle"
font-size="12px"
fill="#444444"
id="text8"
style="stroke-width:0.553105">frame 41</text>
<text
x="524.60187"
y="200"
text-anchor="middle"
font-size="11px"
fill="#888888"
id="text9"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.553105">slot 1</text>
</g>
<g
id="g12"
style="stroke-width:0.553105"
transform="matrix(1.8078582,0,0,1.8080937,0.95311217,-77.397037)">
<circle
cx="398"
cy="371"
r="46"
fill="#ffedcc"
stroke="#b8860b"
stroke-width="1.21683"
id="circle9" />
<text
x="398"
y="367"
text-anchor="middle"
font-size="14px"
font-weight="bold"
id="text10"
style="stroke-width:0.553105">READ</text>
<text
x="398"
y="387"
text-anchor="middle"
font-size="12px"
fill="#444444"
id="text11"
style="stroke-width:0.553105">frame 42</text>
<text
x="398.65192"
y="439.17114"
text-anchor="middle"
font-size="11"
fill="#888888"
id="text12"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.553105">slot 2</text>
</g>
<g
id="g15"
style="stroke-width:0.553105"
transform="matrix(1.8078582,0,0,1.8080937,0.95311217,-77.397037)">
<circle
cx="222"
cy="371"
r="46"
fill="#ffedcc"
stroke="#b8860b"
stroke-width="1.21683"
id="circle12" />
<text
x="222"
y="367"
text-anchor="middle"
font-size="14px"
font-weight="bold"
id="text13"
style="stroke-width:0.553105">READ</text>
<text
x="222"
y="387"
text-anchor="middle"
font-size="12px"
fill="#444444"
id="text14"
style="stroke-width:0.553105">frame 43</text>
<text
x="222.65192"
y="439.17114"
text-anchor="middle"
font-size="11"
fill="#888888"
id="text15"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.553105">slot 3</text>
</g>
<g
id="g18"
style="stroke-width:0.553105"
transform="matrix(1.8078582,0,0,1.8080937,0.95311217,-77.397037)">
<circle
cx="168"
cy="203"
r="46"
fill="#dbe9ff"
stroke="#3a5a8a"
stroke-width="1.21683"
id="circle15" />
<text
x="168"
y="199"
text-anchor="middle"
font-size="14px"
font-weight="bold"
id="text16"
style="stroke-width:0.553105">FREE</text>
<text
x="168"
y="219"
text-anchor="middle"
font-size="12px"
fill="#444444"
id="text17"
style="stroke-width:0.553105">—</text>
<text
x="90.182777"
y="198.69617"
text-anchor="middle"
font-size="11px"
fill="#888888"
id="text18"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.553105">slot 4</text>
</g>
<text
x="561.42572"
y="423.41733"
text-anchor="middle"
font-size="11"
fill="#999999"
id="text20"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:28.9276px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:1"
transform="scale(0.99993487,1.0000651)">RING_SIZ = 5</text>
<g
id="g21"
style="stroke-width:0.553105"
transform="matrix(1.8078582,0,0,1.8080937,0.95311217,-77.397037)">
<rect
x="150"
y="52"
width="150"
height="26"
rx="5"
fill="#f3ecff"
stroke="#5a2ca0"
id="rect20"
style="stroke-width:0.553105" />
<text
x="225"
y="70"
text-anchor="middle"
font-size="13px"
fill="#5a2ca0"
id="text21"
style="stroke-width:0.553105">nextShow_ = 40</text>
<path
d="m 278,72 c 22,12 22,2 22,24"
fill="none"
stroke="#5a2ca0"
stroke-width="1.10621"
marker-end="url(#arrow)"
id="path21" />
</g>
<g
id="g22"
style="stroke-width:0.553105"
transform="matrix(1.8078582,0,0,1.8080937,0.95311217,-77.397037)">
<rect
x="18"
y="120"
width="150"
height="26"
rx="5"
fill="#eaf1fb"
stroke="#3a5a8a"
id="rect21"
style="stroke-width:0.553105" />
<text
x="93"
y="138"
text-anchor="middle"
font-size="13px"
fill="#3a5a8a"
id="text22"
style="stroke-width:0.553105">nextRead_ = 44</text>
<path
d="m 110,146 c 10,22 28,22 40,36"
fill="none"
stroke="#3a5a8a"
stroke-width="1.10621"
marker-end="url(#arrow)"
id="path22" />
</g>
<g
font-size="12px"
transform="matrix(1.8078582,0,0,1.8080937,73.26744,786.87175)"
id="g28"
style="stroke-width:0.553105">
<text
x="0"
y="0"
font-weight="bold"
font-size="13px"
id="text23"
style="stroke-width:0.553105">States:</text>
<rect
x="66"
y="-11"
width="15"
height="15"
rx="3"
fill="#dbe9ff"
stroke="#3a5a8a"
id="rect23"
style="stroke-width:0.553105" />
<text
x="86"
y="1"
id="text24"
style="stroke-width:0.553105">FREE</text>
<rect
x="140"
y="-11"
width="15"
height="15"
rx="3"
fill="#ffedcc"
stroke="#b8860b"
id="rect24"
style="stroke-width:0.553105" />
<text
x="160"
y="1"
id="text25"
style="stroke-width:0.553105">READ</text>
<rect
x="216"
y="-11"
width="15"
height="15"
rx="3"
fill="#d8f0d8"
stroke="#3a7a3a"
id="rect25"
style="stroke-width:0.553105" />
<text
x="236"
y="1"
id="text26"
style="stroke-width:0.553105">FEED</text>
<rect
x="292"
y="-11"
width="15"
height="15"
rx="3"
fill="#e7d8ff"
stroke="#5a2ca0"
id="rect26"
style="stroke-width:0.553105" />
<text
x="312"
y="1"
id="text27"
style="stroke-width:0.553105">SHOW</text>
<rect
x="372"
y="-11"
width="15"
height="15"
rx="3"
fill="#ffd6d6"
stroke="#a00000"
id="rect27"
style="stroke-width:0.553105" />
<text
x="392"
y="1"
id="text28"
style="stroke-width:0.553105">STOP</text>
</g>
<g
id="g52"
style="display:inline;stroke-width:0.553105"
transform="matrix(1.8078582,0,0,1.8080937,0.95311217,-77.397037)">
<path
d="m 395,138 a 130,130 0 0 1 57,162"
fill="none"
stroke="#bbbbbb"
stroke-width="1.10621"
stroke-dasharray="4, 5"
marker-end="url(#arrowRot)"
id="path4" />
<text
x="470"
y="320"
font-size="12px"
fill="#999999"
id="text19"
style="stroke-width:0.553105">advances</text>
<circle
cx="310"
cy="120"
r="46"
fill="#e7d8ff"
stroke="#5a2ca0"
stroke-width="1.21683"
id="circle19" />
<text
x="310"
y="112"
text-anchor="middle"
font-size="14px"
font-weight="bold"
id="text29"
style="stroke-width:0.553105">SHOW</text>
<text
x="310"
y="132"
text-anchor="middle"
font-size="12px"
fill="#444444"
id="text30"
style="stroke-width:0.553105">frame 40</text>
<text
x="381.12689"
y="104.65192"
text-anchor="middle"
font-size="11"
fill="#888888"
id="text31"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.553105">slot 0</text>
<circle
cx="452"
cy="203"
r="46"
fill="#d8f0d8"
stroke="#3a7a3a"
stroke-width="1.21683"
id="circle31" />
<text
x="452"
y="199"
text-anchor="middle"
font-size="14px"
font-weight="bold"
id="text32"
style="stroke-width:0.553105">FEED</text>
<text
x="452"
y="219"
text-anchor="middle"
font-size="12px"
fill="#444444"
id="text33"
style="stroke-width:0.553105">frame 41</text>
<text
x="524.60187"
y="200"
text-anchor="middle"
font-size="11px"
fill="#888888"
id="text34"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.553105">slot 1</text>
<circle
cx="398"
cy="371"
r="46"
fill="#ffedcc"
stroke="#b8860b"
stroke-width="1.21683"
id="circle34" />
<text
x="398"
y="367"
text-anchor="middle"
font-size="14px"
font-weight="bold"
id="text35"
style="stroke-width:0.553105">READ</text>
<text
x="398"
y="387"
text-anchor="middle"
font-size="12px"
fill="#444444"
id="text36"
style="stroke-width:0.553105">frame 42</text>
<text
x="398.65192"
y="439.17114"
text-anchor="middle"
font-size="11"
fill="#888888"
id="text37"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.553105">slot 2</text>
<circle
cx="222"
cy="371"
r="46"
fill="#ffedcc"
stroke="#b8860b"
stroke-width="1.21683"
id="circle37" />
<text
x="222"
y="367"
text-anchor="middle"
font-size="14px"
font-weight="bold"
id="text38"
style="stroke-width:0.553105">READ</text>
<text
x="222"
y="387"
text-anchor="middle"
font-size="12px"
fill="#444444"
id="text39"
style="stroke-width:0.553105">frame 43</text>
<text
x="222.65192"
y="439.17114"
text-anchor="middle"
font-size="11"
fill="#888888"
id="text40"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.553105">slot 3</text>
<circle
cx="168"
cy="203"
r="46"
fill="#dbe9ff"
stroke="#3a5a8a"
stroke-width="1.21683"
id="circle40" />
<text
x="168"
y="199"
text-anchor="middle"
font-size="14px"
font-weight="bold"
id="text41"
style="stroke-width:0.553105">FREE</text>
<text
x="168"
y="219"
text-anchor="middle"
font-size="12px"
fill="#444444"
id="text42"
style="stroke-width:0.553105">—</text>
<text
x="90.182777"
y="198.69617"
text-anchor="middle"
font-size="11px"
fill="#888888"
id="text43"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.553105">slot 4</text>
<text
x="310"
y="277"
text-anchor="middle"
font-size="11"
fill="#999999"
id="text44"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.553105">RING_SIZ = 5</text>
<rect
x="150"
y="52"
width="150"
height="26"
rx="5"
fill="#f3ecff"
stroke="#5a2ca0"
id="rect44"
style="stroke-width:0.553105" />
<text
x="225"
y="70"
text-anchor="middle"
font-size="13px"
fill="#5a2ca0"
id="text45"
style="stroke-width:0.553105">nextShow_ = 40</text>
<path
d="m 278,72 c 22,12 22,2 22,24"
fill="none"
stroke="#5a2ca0"
stroke-width="1.10621"
marker-end="url(#arrow)"
id="path45" />
<rect
x="18"
y="120"
width="150"
height="26"
rx="5"
fill="#eaf1fb"
stroke="#3a5a8a"
id="rect45"
style="stroke-width:0.553105" />
<text
x="93"
y="138"
text-anchor="middle"
font-size="13px"
fill="#3a5a8a"
id="text46"
style="stroke-width:0.553105">nextRead_ = 44</text>
<path
d="m 110,146 c 10,22 28,22 40,36"
fill="none"
stroke="#3a5a8a"
stroke-width="1.10621"
marker-end="url(#arrow)"
id="path46" />
<text
x="40"
y="478"
font-weight="bold"
font-size="13px"
id="text47"
style="stroke-width:0.553105">States:</text>
<rect
x="106"
y="467"
width="15"
height="15"
rx="3"
fill="#dbe9ff"
stroke="#3a5a8a"
id="rect47"
style="font-size:12px;stroke-width:0.553105" />
<text
x="126"
y="479"
id="text48"
style="font-size:12px;stroke-width:0.553105">FREE</text>
<rect
x="180"
y="467"
width="15"
height="15"
rx="3"
fill="#ffedcc"
stroke="#b8860b"
id="rect48"
style="font-size:12px;stroke-width:0.553105" />
<text
x="200"
y="479"
id="text49"
style="font-size:12px;stroke-width:0.553105">READ</text>
<rect
x="256"
y="467"
width="15"
height="15"
rx="3"
fill="#d8f0d8"
stroke="#3a7a3a"
id="rect49"
style="font-size:12px;stroke-width:0.553105" />
<text
x="276"
y="479"
id="text50"
style="font-size:12px;stroke-width:0.553105">FEED</text>
<rect
x="332"
y="467"
width="15"
height="15"
rx="3"
fill="#e7d8ff"
stroke="#5a2ca0"
id="rect50"
style="font-size:12px;stroke-width:0.553105" />
<text
x="352"
y="479"
id="text51"
style="font-size:12px;stroke-width:0.553105">SHOW</text>
<rect
x="412"
y="467"
width="15"
height="15"
rx="3"
fill="#ffd6d6"
stroke="#a00000"
id="rect51"
style="font-size:12px;stroke-width:0.553105" />
<text
x="432"
y="479"
id="text52"
style="font-size:12px;stroke-width:0.553105">STOP</text>
</g>
</g>
<text x="40" y="516" font-size="12" fill="#666">
Between the two cursors lie the frames currently in flight (READ) or ready (FEED);
</text>
<text x="40" y="534" font-size="12" fill="#666">
the gap can never exceed RING_SIZ — that is where the back-pressure lives.
</text>
</svg>

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View file

@ -1,83 +1,332 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.42.4 (0)
-->
<!-- Title: BuffState Pages: 1 -->
<svg width="762pt" height="210pt"
viewBox="0.00 0.00 762.00 209.94" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 205.94)">
<title>BuffState</title>
<text text-anchor="middle" x="377" y="-186.74" font-family="sans-serif" font-size="14.00">Life&#45;cycle of one buffer »slot«</text>
<!-- FREE -->
<g id="node1" class="node">
<title>FREE</title>
<ellipse fill="#dbe9ff" stroke="black" stroke-width="1.4" cx="32.5" cy="-94.44" rx="32.5" ry="32.5"/>
<text text-anchor="middle" x="32.5" y="-91.34" font-family="sans-serif" font-size="12.00">FREE</text>
</g>
<!-- READ -->
<g id="node2" class="node">
<title>READ</title>
<ellipse fill="#ffedcc" stroke="black" stroke-width="1.4" cx="275.5" cy="-94.44" rx="32.5" ry="32.5"/>
<text text-anchor="middle" x="275.5" y="-91.34" font-family="sans-serif" font-size="12.00">READ</text>
</g>
<!-- FREE&#45;&gt;READ -->
<g id="edge1" class="edge">
<title>FREE&#45;&gt;READ</title>
<path fill="none" stroke="black" d="M65.01,-94.44C108.04,-94.44 185.27,-94.44 232.99,-94.44"/>
<polygon fill="black" stroke="black" points="232.99,-97.94 242.99,-94.44 232.99,-90.94 232.99,-97.94"/>
<text text-anchor="start" x="83" y="-108.44" font-family="sans-serif" font-size="10.00"> &#160;submit read</text>
<text text-anchor="start" x="83" y="-97.44" font-family="sans-serif" font-size="10.00"> &#160;addNextReadSubmissions()</text>
</g>
<!-- FEED -->
<g id="node3" class="node">
<title>FEED</title>
<ellipse fill="#d8f0d8" stroke="black" stroke-width="1.4" cx="503.5" cy="-146.44" rx="32.5" ry="32.5"/>
<text text-anchor="middle" x="503.5" y="-143.34" font-family="sans-serif" font-size="12.00">FEED</text>
</g>
<!-- READ&#45;&gt;FEED -->
<g id="edge2" class="edge">
<title>READ&#45;&gt;FEED</title>
<path fill="none" stroke="black" d="M307.45,-101.56C347.49,-110.77 417.35,-126.84 461.69,-137.05"/>
<polygon fill="black" stroke="black" points="461.03,-140.49 471.56,-139.32 462.6,-133.67 461.03,-140.49"/>
<text text-anchor="start" x="326" y="-147.44" font-family="sans-serif" font-size="10.00"> &#160;read completed OK</text>
<text text-anchor="start" x="326" y="-136.44" font-family="sans-serif" font-size="10.00"> &#160;handleCompletedRead()</text>
</g>
<!-- STOP -->
<g id="node5" class="node">
<title>STOP</title>
<ellipse fill="#ffd6d6" stroke="black" stroke-width="1.4" cx="503.5" cy="-61.44" rx="30.5" ry="30.5"/>
<ellipse fill="none" stroke="black" stroke-width="1.4" cx="503.5" cy="-61.44" rx="34.5" ry="34.5"/>
<text text-anchor="middle" x="503.5" y="-58.34" font-family="sans-serif" font-size="12.00">STOP</text>
</g>
<!-- READ&#45;&gt;STOP -->
<g id="edge3" class="edge">
<title>READ&#45;&gt;STOP</title>
<path fill="none" stroke="#a00000" d="M307.92,-89.85C347.22,-84.11 414.71,-74.26 458.97,-67.79"/>
<polygon fill="#a00000" stroke="#a00000" points="459.75,-71.22 469.14,-66.31 458.74,-64.29 459.75,-71.22"/>
<text text-anchor="middle" x="388.5" y="-89.44" font-family="sans-serif" font-size="10.00" fill="#a00000"> &#160;short read / EOF &#160;</text>
</g>
<!-- SHOW -->
<g id="node4" class="node">
<title>SHOW</title>
<ellipse fill="#e7d8ff" stroke="black" stroke-width="1.4" cx="721.5" cy="-146.44" rx="32.5" ry="32.5"/>
<text text-anchor="middle" x="721.5" y="-143.34" font-family="sans-serif" font-size="12.00">SHOW</text>
</g>
<!-- FEED&#45;&gt;SHOW -->
<g id="edge4" class="edge">
<title>FEED&#45;&gt;SHOW</title>
<path fill="none" stroke="black" d="M536.37,-146.44C574.13,-146.44 637.14,-146.44 678.76,-146.44"/>
<polygon fill="black" stroke="black" points="678.85,-149.94 688.85,-146.44 678.85,-142.94 678.85,-149.94"/>
<text text-anchor="start" x="556" y="-160.44" font-family="sans-serif" font-size="10.00"> &#160;publish frame</text>
<text text-anchor="start" x="556" y="-149.44" font-family="sans-serif" font-size="10.00"> &#160;maybeDisplayFrame()</text>
</g>
<!-- SHOW&#45;&gt;FREE -->
<g id="edge5" class="edge">
<title>SHOW&#45;&gt;FREE</title>
<path fill="none" stroke="#5a2ca0" d="M698.02,-123.55C665.91,-92.66 603.51,-39.12 538,-18.44 369.44,34.78 157.11,-41.15 71.68,-77.22"/>
<polygon fill="#5a2ca0" stroke="#5a2ca0" points="70.19,-74.05 62.37,-81.21 72.94,-80.49 70.19,-74.05"/>
<text text-anchor="start" x="328.5" y="-19.44" font-family="sans-serif" font-size="10.00" fill="#5a2ca0"> &#160;GUI released frame</text>
<text text-anchor="start" x="328.5" y="-8.44" font-family="sans-serif" font-size="10.00" fill="#5a2ca0"> &#160;(toDisplay_ == nullptr)</text>
</g>
</g>
<svg
width="14.58cm"
height="12.09cm"
viewBox="0 0 499.99993 414.609"
version="1.1"
id="svg15"
sodipodi:docname="state-engine.svg"
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
inkscape:export-filename="../../state-engine.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<title
id="title19">Buffer State Engine</title>
<defs
id="defs15">
<marker
style="overflow:visible"
id="DartArrow"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Dart arrow"
markerWidth="2"
markerHeight="2"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:context-stroke;fill-rule:evenodd;stroke:none"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
transform="scale(-0.5)"
id="path17" />
</marker>
</defs>
<sodipodi:namedview
id="namedview15"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="pt"
inkscape:zoom="1.405605"
inkscape:cx="276.74916"
inkscape:cy="231.57288"
inkscape:window-width="1920"
inkscape:window-height="1057"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg15" />
<g
id="states">
<text
text-anchor="middle"
x="249.59398"
y="25.655668"
font-family="sans-serif"
font-size="14px"
id="title"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-anchor:middle"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.7274px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
id="tspan19">Life-cycle of one buffer »slot«</tspan></text>
<g
id="n_FREE"
class="node"
transform="translate(24.658154,175.59834)">
<title
id="title2">FREE</title>
<circle
fill="#dbe9ff"
stroke="#000000"
stroke-width="1.4"
cx="32.5"
cy="-94.440002"
id="ellipse2"
r="32.5" />
<text
text-anchor="middle"
x="32.251896"
y="-89.148308"
font-family="sans-serif"
font-size="12px"
id="text2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.5176px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">FREE</text>
</g>
<g
id="n_READ"
class="node"
transform="translate(24.658154,175.59834)">
<title
id="title3">READ</title>
<circle
fill="#ffedcc"
stroke="#000000"
stroke-width="1.4"
cx="275.5"
cy="-94.440002"
id="ellipse3"
r="32.5" />
<text
text-anchor="middle"
x="275.21646"
y="-89.148308"
font-family="sans-serif"
font-size="12px"
id="text3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.5176px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">READ</text>
</g>
<g
id="trans1">
<path
fill="none"
stroke="#000000"
d="m 87.085885,80.512765 c 43.030005,0 120.260005,0 167.980005,0"
id="path4"
style="marker-end:url(#DartArrow)" />
<text
text-anchor="start"
x="106.36691"
y="70.385902"
font-family="sans-serif"
font-size="10px"
id="text4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"> submit read</text>
</g>
<g
id="n_FEED"
class="node"
transform="translate(-67.657974,376.80046)">
<title
id="title5">FEED</title>
<circle
fill="#d8f0d8"
stroke="#000000"
stroke-width="1.4"
cx="503.5"
cy="-146.44"
id="ellipse5"
r="32.5" />
<text
text-anchor="middle"
x="503.21646"
y="-141.14832"
font-family="sans-serif"
font-size="12px"
id="text6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.5176px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">FEED</text>
</g>
<g
id="trans2">
<path
fill="none"
stroke="#000000"
d="m 319.19681,114.06351 83.22759,78.77542"
id="path6"
style="marker-end:url(#DartArrow)"
sodipodi:nodetypes="cc" />
<text
text-anchor="start"
x="349.29718"
y="130.00645"
font-family="sans-serif"
font-size="10px"
id="text7"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"> read completed OK</text>
</g>
<g
id="n_STOP"
class="node"
transform="translate(-243.89786,291.80046)">
<title
id="title8">STOP</title>
<circle
fill="#ffd6d6"
stroke="#000000"
stroke-width="1.4"
cx="503.5"
cy="-61.439999"
id="ellipse8"
r="30.5" />
<circle
fill="none"
stroke="#000000"
stroke-width="1.4"
cx="503.5"
cy="-61.439999"
id="ellipse9"
r="34.5" />
<text
text-anchor="middle"
x="503.26962"
y="-56.155396"
font-family="sans-serif"
font-size="12px"
id="text9"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.5176px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">STOP</text>
</g>
<g
id="trans2b">
<path
fill="none"
stroke="#a00000"
d="m 291.90741,119.31784 -16.7975,65.95858"
id="path9"
style="marker-end:url(#DartArrow)"
sodipodi:nodetypes="cc" />
<text
text-anchor="middle"
x="229.81686"
y="130.70351"
font-family="sans-serif"
font-size="10px"
fill="#a00000"
id="text10"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"> short read / EOF  </text>
</g>
<g
id="n_SHOW"
class="node"
transform="translate(-391.73278,519.04016)">
<title
id="title10">SHOW</title>
<circle
fill="#e7d8ff"
stroke="#000000"
stroke-width="1.4"
cx="721.5"
cy="-146.44"
id="ellipse10"
r="32.5" />
<text
text-anchor="middle"
x="721.25897"
y="-141.1554"
font-family="sans-serif"
font-size="12px"
id="text11"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.5176px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">SHOW</text>
</g>
<g
id="trans3">
<path
fill="none"
stroke="#000000"
d="m 415.77635,262.20872 -54.50862,73.59436"
id="path11"
style="marker-end:url(#DartArrow)"
sodipodi:nodetypes="cc" />
<text
text-anchor="start"
x="392.15256"
y="311.47485"
font-family="sans-serif"
font-size="10px"
id="text12"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"> publish frame</text>
</g>
<g
id="trans4">
<path
fill="none"
stroke="#5a2ca0"
d="M 289.50247,374.18644 C 66.708689,375.12887 57.253166,296.77982 56.31298,127.42887"
id="path13"
style="marker-end:url(#DartArrow)"
sodipodi:nodetypes="cc" />
<text
text-anchor="start"
x="93.769241"
y="367.90442"
font-family="sans-serif"
font-size="10px"
fill="#5a2ca0"
id="text14"
style="font-size:10px;font-family:sans-serif;text-align:center;text-anchor:middle;fill:#5a2ca0"><tspan
sodipodi:role="line"
id="tspan17"
x="93.769241"
y="367.90442"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">GUI released frame</tspan><tspan
sodipodi:role="line"
id="tspan18"
x="93.769241"
y="383.02692"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12.098px;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"> (toDisplay_ == nullptr)</tspan></text>
</g>
</g>
<metadata
id="metadata19">
<rdf:RDF>
<cc:Work
rdf:about="">
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
<dc:title>Buffer State Engine</dc:title>
<dc:description>State transitions applied for each buffer slot</dc:description>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
</svg>

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -1097,7 +1097,7 @@
font-weight="normal"
fill="#4a7ba6"
text-anchor="middle"
id="text166">1 µs</text>
id="text166">300 ns</text>
<text
x="206.64619"
y="50.471252"

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 38 KiB