Files
etrelay/diagrams/tasks.puml
T

27 lines
665 B
Plaintext

@startuml
skinparam shadowing false
title Tasks and data flow
rectangle "relay loop (main task)" as loop {
card "public socket\nrecv_from" as recv
card "sessions:\nHashMap<client, Sender>" as map
}
rectangle "session task (one per client)" as st {
card "mpsc Receiver\n(queue: 64)" as rx
card "upstream socket\n(connected to ET)" as up
}
rectangle "heartbeat task" as hb {
card "interval 5 min" as tick
card "probe socket" as probe
}
recv --> map : lookup client
map --> rx : try_send(packet)\n(full: drop)
rx --> up : send
up --> recv : recv, then public.send_to(client)
tick --> probe : getinfo
tick --> recv : heartbeat via public socket
@enduml