mirror of
https://github.com/actix/actix-website
synced 2024-11-24 00:41:07 +01:00
c1a8103cbc
* add arch diagrams and menu * fix colors for arch diagrams * refine architecture diagrams, ready for review * capitalize titles and add mmdc instruction * apply code review requested changes * Add links to accept, worker and dispatcher too
29 lines
668 B
Plaintext
29 lines
668 B
Plaintext
sequenceDiagram
|
|
|
|
participant ServerBuilder
|
|
participant mio
|
|
participant Accept
|
|
participant WorkerClient
|
|
|
|
|
|
ServerBuilder->>Accept: start(socks, workers)
|
|
loop Continuous: poll
|
|
Accept->>mio: mio::Poll::poll()
|
|
alt poll() -> TIMER | CMD
|
|
Accept-->>Accept: process_*
|
|
else poll() -> NOTIFY
|
|
Accept->>Accept: backpressure
|
|
else poll() -> OTHER(token)
|
|
Accept-->>Accept: accept_one(Conn)
|
|
loop while exist WorkerClient
|
|
Accept->>WorkerClient: send(Conn)
|
|
alt send(Conn) -> Ok(_)
|
|
Note over Accept: break loop
|
|
else send(Conn) -> Err(_)
|
|
Accept->>ServerBuilder: worker_faulted(idx)
|
|
Accept->>Accept: remove worker, get next worker
|
|
end
|
|
end
|
|
end
|
|
end
|