Files
lab-rv32i-freertos-c-queue/doc/assets/a5-flow.puml
T

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