Files

38 lines
12 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="551.9646px" preserveAspectRatio="none" style="width:801px;height:551px;" version="1.1" viewBox="0 0 801 551" width="801.4101px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="303.5805" x="248.1187" y="23.0964">A5 FLOW — four heap checkpoints and equal behavior</text><line style="stroke: #A80036; stroke-width: 1.061470300901748; stroke-dasharray: 5.0,5.0;" x1="29.7212" x2="29.7212" y1="65.7727" y2="511.3595"/><line style="stroke: #A80036; stroke-width: 1.061470300901748; stroke-dasharray: 5.0,5.0;" x1="204.8638" x2="204.8638" y1="65.7727" y2="511.3595"/><line style="stroke: #A80036; stroke-width: 1.061470300901748; stroke-dasharray: 5.0,5.0;" x1="309.9493" x2="309.9493" y1="65.7727" y2="511.3595"/><line style="stroke: #A80036; stroke-width: 1.061470300901748; stroke-dasharray: 5.0,5.0;" x1="499.4218" x2="499.4218" y1="65.7727" y2="511.3595"/><line style="stroke: #A80036; stroke-width: 1.061470300901748; stroke-dasharray: 5.0,5.0;" x1="642.7203" x2="642.7203" y1="65.7727" y2="511.3595"/><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="42.4588" x="8.4918" y="33.9478"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="27.5982" x="15.9221" y="53.8599">main</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="42.4588" x="8.4918" y="510.2981"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="27.5982" x="15.9221" y="530.2101">main</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="104.0241" x="152.8517" y="33.9478"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="89.1635" x="160.282" y="53.8599">dynamic objects</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="104.0241" x="152.8517" y="510.2981"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="89.1635" x="160.282" y="530.2101">dynamic objects</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="85.9791" x="267.4905" y="33.9478"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="71.1185" x="274.9208" y="53.8599">static objects</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="85.9791" x="267.4905" y="510.2981"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="71.1185" x="274.9208" y="530.2101">static objects</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="125.2535" x="436.795" y="33.9478"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="110.3929" x="444.2253" y="53.8599">scheduler / daemon</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="125.2535" x="436.795" y="510.2981"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="110.3929" x="444.2253" y="530.2101">scheduler / daemon</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="55.1965" x="615.122" y="33.9478"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="40.3359" x="622.5523" y="53.8599">verifier</text><rect fill="#FEFECE" height="30.7634" style="stroke: #A80036; stroke-width: 1.5922054513526223;" width="55.1965" x="615.122" y="510.2981"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="40.3359" x="622.5523" y="530.2101">verifier</text><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="29.7212" x2="74.3029" y1="98.6591" y2="98.6591"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="74.3029" x2="74.3029" y1="98.6591" y2="112.4582"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="30.7826" x2="74.3029" y1="112.4582" y2="112.4582"/><polygon fill="#8095A1" points="41.3973,108.2123,30.7826,112.4582,41.3973,116.7041,37.1515,112.4582" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="135.8682" x="37.1515" y="93.115">01 H0 after static verifier</text><polygon fill="#8095A1" points="192.1261,138.9757,202.7408,143.2216,192.1261,147.4675,196.372,143.2216" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="29.7212" x2="198.4949" y1="143.2216" y2="143.2216"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="149.6673" x="37.1515" y="137.6776">create task + queue + timer</text><polygon fill="#8095A1" points="41.3973,169.7391,30.7826,173.985,41.3973,178.2309,37.1515,173.985" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748; stroke-dasharray: 2.0,2.0;" x1="35.0285" x2="203.8023" y1="173.985" y2="173.985"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="58.3809" x="47.7662" y="168.441">02 H1 &lt; H0</text><polygon fill="#8095A1" points="297.7424,200.5025,308.3571,204.7484,297.7424,208.9943,301.9883,204.7484" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="29.7212" x2="304.1112" y1="204.7484" y2="204.7484"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="176.2041" x="37.1515" y="199.2044">createStatic with named buffers</text><polygon fill="#8095A1" points="41.3973,231.2659,30.7826,235.5118,41.3973,239.7577,37.1515,235.5118" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748; stroke-dasharray: 2.0,2.0;" x1="35.0285" x2="309.4186" y1="235.5118" y2="235.5118"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="58.3809" x="47.7662" y="229.9678">03 H2 = H1</text><polygon fill="#8095A1" points="486.6841,262.0294,497.2988,266.2752,486.6841,270.5211,490.93,266.2752" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="29.7212" x2="493.053" y1="266.2752" y2="266.2752"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="82.7947" x="37.1515" y="260.7312">start scheduler</text><polygon fill="#8095A1" points="216.5399,292.7928,205.9252,297.0387,216.5399,301.2845,212.2941,297.0387" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="210.1711" x2="498.3603" y1="297.0387" y2="297.0387"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="163.4664" x="222.9088" y="291.4946">04 receive 0xCAFE; start timer</text><polygon fill="#8095A1" points="322.1562,323.5562,311.5415,327.8021,322.1562,332.0479,317.9104,327.8021" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="315.7874" x2="498.3603" y1="327.8021" y2="327.8021"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="163.4664" x="328.5251" y="322.258">05 receive 0xCAFE; start timer</text><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="499.4218" x2="544.0035" y1="358.5655" y2="358.5655"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="544.0035" x2="544.0035" y1="358.5655" y2="372.3646"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="500.4832" x2="544.0035" y1="372.3646" y2="372.3646"/><polygon fill="#8095A1" points="511.0979,368.1187,500.4832,372.3646,511.0979,376.6105,506.8521,372.3646" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="128.4379" x="506.8521" y="353.0214">06 dynamic callback = 1</text><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="499.4218" x2="544.0035" y1="403.128" y2="403.128"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="544.0035" x2="544.0035" y1="403.128" y2="416.9271"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="500.4832" x2="544.0035" y1="416.9271" y2="416.9271"/><polygon fill="#8095A1" points="511.0979,412.6812,500.4832,416.9271,511.0979,421.173,506.8521,416.9271" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="110.3929" x="506.8521" y="397.584">07 static callback = 1</text><polygon fill="#8095A1" points="629.9826,443.4447,640.5973,447.6905,629.9826,451.9364,634.2285,447.6905" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="499.4218" x2="636.3514" y1="447.6905" y2="447.6905"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="63.6882" x="506.8521" y="442.1465">run verifier</text><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="642.7203" x2="687.302" y1="478.4539" y2="478.4539"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="687.302" x2="687.302" y1="478.4539" y2="492.2531"/><line style="stroke: #8095A1; stroke-width: 1.061470300901748;" x1="643.7817" x2="687.302" y1="492.2531" y2="492.2531"/><polygon fill="#8095A1" points="654.3964,488.0072,643.7817,492.2531,654.3964,496.4989,650.1506,492.2531" style="stroke: #8095A1; stroke-width: 1.061470300901748;"/><text fill="#000000" font-family="Monospace" font-size="11.6762" lengthAdjust="spacingAndGlyphs" textLength="139.0526" x="650.1506" y="472.9099">08 H3 = H2; PASS + digest</text><!--MD5=[5a7001c2381e225337d47e91fae9d146]
@startuml
scale 540 height
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName Monospace
skinparam defaultFontSize 11
skinparam sequenceArrowColor #8095a1
title A5 FLOW — four heap checkpoints and equal behavior
participant main as M
participant "dynamic objects" as D
participant "static objects" as S
participant "scheduler / daemon" as K
participant verifier as V
M -> M : 01 H0 after static verifier
M -> D : create task + queue + timer
D - -> M : 02 H1 < H0
M -> S : createStatic with named buffers
S - -> M : 03 H2 = H1
M -> K : start scheduler
K -> D : 04 receive 0xCAFE; start timer
K -> S : 05 receive 0xCAFE; start timer
K -> K : 06 dynamic callback = 1
K -> K : 07 static callback = 1
K -> V : run verifier
V -> V : 08 H3 = H2; PASS + digest
@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>