Files

37 lines
943 B
Plaintext

@startuml
scale 600 width
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName Monospace
skinparam defaultFontSize 11
skinparam sequenceArrowColor #8095a1
skinparam sequenceLifeLineBorderColor #8095a1
title A5 FLOW — priority inheritance and bounded inversion
participant "Low p1" as L
participant Mutex as M
participant "High p3" as H
participant "Medium p2" as D
participant "Verifier p0" as V
L -> M : 02 take; protected=1
L -> H : create
activate H
H -> M : 03 take(portMAX_DELAY)
H --> L : Blocked; owner inherits p3
deactivate H
L -> L : 04 effective=3; holder=Low
L -> D : create
L -> L : 05 Medium Ready, started=0
L -> M : 06 give
activate H
M --> H : 07 acquire before give returns
H -> M : protected=2; give; delete
deactivate H
activate D
D -> D : 08 run after High
D -> D : delete
deactivate D
L -> L : 09 effective restored to p1
L -> V : completed
V -> V : 10 PASS + stable digest
@enduml