diff options
Diffstat (limited to 'dev-docs/SocketThreads states.gv')
-rw-r--r-- | dev-docs/SocketThreads states.gv | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/dev-docs/SocketThreads states.gv b/dev-docs/SocketThreads states.gv new file mode 100644 index 000000000..5afaa5370 --- /dev/null +++ b/dev-docs/SocketThreads states.gv @@ -0,0 +1,77 @@ +digraph +{ + node + [ + shape="box" + ] + + edge + [ + d + ] + + // Forward-declarations of nodes (so that they are laid out in a specific order: + ssNormal + ssWritingRestOut + ssShuttingDown + ssShuttingDown2 + + // Nodes with special labels / shapes: + ForceClose + [ + label="Force close" + shape="ellipse" + ] + X + [ + label="Socket closed" + shape="ellipse" + ] + + // Edges: + ssNormal -> ssWritingRestOut + [ + label="cSocketThreads::RemoveClient()" + ] + ssWritingRestOut -> ssShuttingDown + [ + label="All outgoing data written" + ] + ssShuttingDown -> ssShuttingDown2 + [ + label="One thread loop" + ] + ssShuttingDown2 -> ForceClose + [ + label="One thread loop" + ] + ssNormal -> ssRemoteClosed + [ + label="Remote closed" + color="red" + fontcolor="red" + ] + ssWritingRestOut -> X + [ + label="Remote closed" + color="red" + fontcolor="red" + ] + ssShuttingDown -> X + [ + label="Remote closed" + color="red" + fontcolor="red" + ] + ssShuttingDown2 -> X + [ + label="Remote closed" + color="red" + fontcolor="red" + ] + ssRemoteClosed -> X + [ + label="cSocketThreads::RemoveClient()" + ] + ForceClose -> X +} |