Files

41 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="530.8752px" preserveAspectRatio="none" style="width:572px;height:530px;" version="1.1" viewBox="0 0 572 530" width="572.2296px" zoomAndPan="magnify"><defs/><g><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="243.3178" x="163.0133" y="20.9262">A5 FLOW — ALL-ready wait and reusable barrier</text><line style="stroke: #8095A1; stroke-width: 0.9617303578739282; stroke-dasharray: 5.0,5.0;" x1="45.2013" x2="45.2013" y1="59.5924" y2="494.0507"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282; stroke-dasharray: 5.0,5.0;" x1="123.1015" x2="123.1015" y1="59.5924" y2="494.0507"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282; stroke-dasharray: 5.0,5.0;" x1="193.3078" x2="193.3078" y1="59.5924" y2="494.0507"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282; stroke-dasharray: 5.0,5.0;" x1="406.8119" x2="406.8119" y1="59.5924" y2="494.0507"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282; stroke-dasharray: 5.0,5.0;" x1="535.6838" x2="535.6838" y1="59.5924" y2="494.0507"/><rect fill="#FEFECE" height="27.8728" style="stroke: #A80036; stroke-width: 1.4425955368108925;" width="75.9767" x="7.6938" y="30.758"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="62.5125" x="14.426" y="48.799">Coordinator</text><rect fill="#FEFECE" height="27.8728" style="stroke: #A80036; stroke-width: 1.4425955368108925;" width="75.9767" x="7.6938" y="493.089"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="62.5125" x="14.426" y="511.13">Coordinator</text><rect fill="#FEFECE" height="27.8728" style="stroke: #A80036; stroke-width: 1.4425955368108925;" width="60.589" x="93.2878" y="30.758"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="47.1248" x="100.02" y="48.799">Worker A</text><rect fill="#FEFECE" height="27.8728" style="stroke: #A80036; stroke-width: 1.4425955368108925;" width="60.589" x="93.2878" y="493.089"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="47.1248" x="100.02" y="511.13">Worker A</text><rect fill="#FEFECE" height="27.8728" style="stroke: #A80036; stroke-width: 1.4425955368108925;" width="60.589" x="163.4942" y="30.758"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="47.1248" x="170.2263" y="48.799">Worker B</text><rect fill="#FEFECE" height="27.8728" style="stroke: #A80036; stroke-width: 1.4425955368108925;" width="60.589" x="163.4942" y="493.089"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="47.1248" x="170.2263" y="511.13">Worker B</text><rect fill="#FEFECE" height="27.8728" style="stroke: #A80036; stroke-width: 1.4425955368108925;" width="74.0532" x="370.2662" y="30.758"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="60.589" x="376.9983" y="48.799">EventGroup</text><rect fill="#FEFECE" height="27.8728" style="stroke: #A80036; stroke-width: 1.4425955368108925;" width="74.0532" x="370.2662" y="493.089"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="60.589" x="376.9983" y="511.13">EventGroup</text><rect fill="#FEFECE" height="27.8728" style="stroke: #A80036; stroke-width: 1.4425955368108925;" width="50.9717" x="510.6788" y="30.758"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="37.5075" x="517.4109" y="48.799">Verifier</text><rect fill="#FEFECE" height="27.8728" style="stroke: #A80036; stroke-width: 1.4425955368108925;" width="50.9717" x="510.6788" y="493.089"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="37.5075" x="517.4109" y="511.13">Verifier</text><polygon fill="#8095A1" points="395.752,85.5417,405.3693,89.3887,395.752,93.2356,399.599,89.3887" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="45.6822" x2="401.5224" y1="89.3887" y2="89.3887"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="126.9484" x="52.4143" y="84.3656">02 wait READY_ALL; block</text><polygon fill="#8095A1" points="395.752,113.4145,405.3693,117.2614,395.752,121.1083,399.599,117.2614" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="123.5824" x2="401.5224" y1="117.2614" y2="117.2614"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="75.9767" x="130.3145" y="112.2383">03 set READY_A</text><polygon fill="#8095A1" points="395.752,141.2873,405.3693,145.1342,395.752,148.9811,399.599,145.1342" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="123.5824" x2="401.5224" y1="145.1342" y2="145.1342"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="112.5225" x="130.3145" y="140.1111">04 sync(SYNC_A); block</text><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="193.7887" x2="234.1813" y1="173.007" y2="173.007"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="234.1813" x2="234.1813" y1="173.007" y2="185.5094"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="194.7504" x2="234.1813" y1="185.5094" y2="185.5094"/><polygon fill="#8095A1" points="204.3677,181.6625,194.7504,185.5094,204.3677,189.3564,200.5208,185.5094" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="200.0399" x="200.5208" y="167.9839">05 observe READY_A|SYNC_A; A Blocked</text><polygon fill="#8095A1" points="395.752,209.5353,405.3693,213.3822,395.752,217.2291,399.599,213.3822" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="193.7887" x2="401.5224" y1="213.3822" y2="213.3822"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="61.5507" x="200.5208" y="208.3591">set READY_B</text><polygon fill="#8095A1" points="56.2612,237.408,46.6439,241.255,56.2612,245.1019,52.4143,241.255" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282; stroke-dasharray: 2.0,2.0;" x1="50.4908" x2="406.3311" y1="241.255" y2="241.255"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="156.762" x="62.0316" y="236.2319">06 READY_ALL; clear READY bits</text><polygon fill="#8095A1" points="395.752,265.2808,405.3693,269.1277,395.752,272.9747,399.599,269.1277" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="45.6822" x2="401.5224" y1="269.1277" y2="269.1277"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="98.0965" x="52.4143" y="264.1046">sync(SYNC_C); block</text><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="193.7887" x2="234.1813" y1="297.0005" y2="297.0005"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="234.1813" x2="234.1813" y1="297.0005" y2="309.503"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="194.7504" x2="234.1813" y1="309.503" y2="309.503"/><polygon fill="#8095A1" points="204.3677,305.6561,194.7504,309.503,204.3677,313.3499,200.5208,309.503" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="117.3311" x="200.5208" y="291.9774">07 coordinator Blocked</text><polygon fill="#8095A1" points="395.752,333.5288,405.3693,337.3757,395.752,341.2227,399.599,337.3757" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="193.7887" x2="401.5224" y1="337.3757" y2="337.3757"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="115.4076" x="200.5208" y="332.3527">sync(SYNC_B) = final bit</text><polygon fill="#8095A1" points="56.2612,361.4016,46.6439,365.2485,56.2612,369.0954,52.4143,365.2485" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282; stroke-dasharray: 2.0,2.0;" x1="50.4908" x2="406.3311" y1="365.2485" y2="365.2485"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="63.4742" x="62.0316" y="360.2254">08 SYNC_ALL</text><polygon fill="#8095A1" points="134.1614,389.2743,124.5441,393.1213,134.1614,396.9682,130.3145,393.1213" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282; stroke-dasharray: 2.0,2.0;" x1="128.391" x2="406.3311" y1="393.1213" y2="393.1213"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="63.4742" x="139.9318" y="388.0982">09 SYNC_ALL</text><polygon fill="#8095A1" points="204.3677,417.1471,194.7504,420.994,204.3677,424.841,200.5208,420.994" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282; stroke-dasharray: 2.0,2.0;" x1="198.5973" x2="406.3311" y1="420.994" y2="420.994"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="139.4509" x="210.1381" y="415.9709">10 SYNC_ALL; clear sync bits</text><polygon fill="#8095A1" points="524.6239,445.0199,534.2412,448.8668,524.6239,452.7137,528.4708,448.8668" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="193.7887" x2="530.3943" y1="448.8668" y2="448.8668"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="90.4027" x="200.5208" y="443.8437">workers complete</text><polygon fill="#8095A1" points="417.8718,472.8926,408.2545,476.7396,417.8718,480.5865,414.0249,476.7396" style="stroke: #8095A1; stroke-width: 0.9617303578739282;"/><line style="stroke: #8095A1; stroke-width: 0.9617303578739282;" x1="412.1015" x2="535.2029" y1="476.7396" y2="476.7396"/><text fill="#000000" font-family="Monospace" font-size="10.579" lengthAdjust="spacingAndGlyphs" textLength="105.7903" x="423.6422" y="471.7165">11 final bits = 0; PASS</text><!--MD5=[e8bb2d9237abd3c38ae5ad217dfe73d7]
@startuml
scale 520 height
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName Monospace
skinparam defaultFontSize 11
skinparam sequenceArrowColor #8095a1
skinparam sequenceLifeLineBorderColor #8095a1
title A5 FLOW — ALL-ready wait and reusable barrier
participant Coordinator as C
participant "Worker A" as A
participant "Worker B" as B
participant EventGroup as G
participant Verifier as V
C -> G : 02 wait READY_ALL; block
A -> G : 03 set READY_A
A -> G : 04 sync(SYNC_A); block
B -> B : 05 observe READY_A|SYNC_A; A Blocked
B -> G : set READY_B
G - -> C : 06 READY_ALL; clear READY bits
C -> G : sync(SYNC_C); block
B -> B : 07 coordinator Blocked
B -> G : sync(SYNC_B) = final bit
G - -> C : 08 SYNC_ALL
G - -> A : 09 SYNC_ALL
G - -> B : 10 SYNC_ALL; clear sync bits
B -> V : workers complete
V -> G : 11 final bits = 0; 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>