magic-wormhole/docs/mailbox_close.dot

76 lines
2.8 KiB
Plaintext

digraph {
/* M_close pathways */
title [label="Mailbox\nClose\nMachine" style="dotted"]
title -> S2B [style="invis"]
/* All dashed states are from the main Mailbox Machine diagram, and
all dashed lines indicate M_close() pathways in from those states.
Within this graph, all M_close() events leave the state unchanged. */
SrA [label="SrA:\nwaiting for:\nrelease"]
SrA -> Pr [label="connected"]
Pr [shape="box" label="C.tx_release" color="orange"]
Pr -> SrB [color="orange"]
SrB [label="SrB:\nwaiting for:\nrelease" color="orange"]
SrB -> SrA [label="lost"]
SrB -> P_stop [label="rx_released" color="orange" fontcolor="orange"]
ScA [label="ScA:\nwaiting for:\nclosed"]
ScA -> Pc [label="connected"]
Pc [shape="box" label="C.tx_close" color="orange"]
Pc -> ScB [color="orange"]
ScB [label="ScB:\nwaiting for:\nclosed" color="orange"]
ScB -> ScA [label="lost"]
ScB -> P_stop [label="rx_closed" color="orange" fontcolor="orange"]
SrcA [label="SrcA:\nwaiting for:\nrelease\nclose"]
SrcA -> Prc [label="connected"]
Prc [shape="box" label="C.tx_release\nC.tx_close" color="orange"]
Prc -> SrcB [color="orange"]
SrcB [label="SrcB:\nwaiting for:\nrelease\nclosed" color="orange"]
SrcB -> SrcA [label="lost"]
SrcB -> ScB [label="rx_released" color="orange" fontcolor="orange"]
SrcB -> SrB [label="rx_closed" color="orange" fontcolor="orange"]
P_stop [shape="box" label="C.stop"]
P_stop -> SsB
SsB [label="SsB: closed\nstopping"]
SsB -> Pss [label="stopped"]
Pss [shape="box" label="B.closed"]
Pss -> Ss
Ss [label="Ss: closed" color="green"]
S0A [label="S0A" style="dashed"]
S0A -> P_stop [style="dashed"]
S0B [label="S0B" style="dashed" color="orange"]
S0B -> P_stop [style="dashed" color="orange"]
{rank=same; S2A S2B S3A S3B S4A S4B S5A S5B}
S1A [label="S1A" style="dashed"]
S1A -> P_stop [style="dashed"]
S2A [label="S2A" style="dashed"]
S2A -> SrA [label="stop" style="dashed"]
S2B [label="S2B" color="orange" style="dashed"]
S2B -> Pr [color="orange" style="dashed"]
S3A [label="S3A" style="dashed"]
S3B [label="S3B" color="orange" style="dashed"]
S3A -> SrcA [style="dashed"]
S3B -> Prc [color="orange" style="dashed"]
S4A [label="S4A" style="dashed"]
S4B [label="S4B" color="orange" style="dashed"]
S4A -> SrcA [style="dashed"]
S4B -> Prc [color="orange" style="dashed"]
S5A [label="S5A" style="dashed"]
S5B [label="S5B" color="green" style="dashed"]
S5A -> ScA [style="dashed"]
S5B -> Pc [style="dashed" color="green"]
}