34 lines
1.1 KiB
Plaintext
34 lines
1.1 KiB
Plaintext
@startuml
|
|
scale max 900*520
|
|
skinparam backgroundColor transparent
|
|
skinparam shadowing false
|
|
skinparam defaultFontName "DejaVu Sans Mono"
|
|
skinparam defaultFontSize 12
|
|
skinparam sequenceArrowColor #8295a0
|
|
skinparam sequenceLifeLineBorderColor #2b6f8e
|
|
skinparam sequenceParticipantBorderColor #2b6f8e
|
|
skinparam sequenceParticipantBackgroundColor #edf6fa
|
|
title A5 FLOW — empty/full blocking, copy-by-value and FIFO
|
|
|
|
participant receiver
|
|
participant "Queue<1>" as queue
|
|
participant sender
|
|
participant verifier
|
|
|
|
receiver -> queue : 02 receive M1 / Blocked (empty)
|
|
sender -> queue : 03 send M1
|
|
queue --> receiver : 04 wake + copy M1
|
|
receiver -> receiver : delay(2)
|
|
sender -> queue : send M2 / queue full
|
|
sender -> sender : mutate source M2 → DEAD
|
|
sender -> sender : 05 evidence: source mutated
|
|
sender -> queue : send M3 / Blocked (full)
|
|
receiver -> sender : 06 observe eBlocked
|
|
receiver -> queue : 07 receive copied M2
|
|
queue --> sender : space available
|
|
sender -> queue : complete send M3
|
|
queue --> receiver : 08 receive M3
|
|
sender -> sender : 09 completed
|
|
verifier -> verifier : 10 FIFO + copy + digest = PASS
|
|
@enduml
|