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"] }