3proxy/man
Vladimir Dubrovin c55f736a0d Clients of TCP services on event loops, served by fibers
With -L, or loopmode on for the services which follow, the clients of a
TCP service are served on event loops: loops threads (by default one
for each CPU) each run a loop, and each client is given in turn to one
of them, which serves it on a fiber with the same code a thread runs.
Its waits in sockpoll() wait in the loop, its sockets and a timer
registered there, and the fiber goes on once one is ready or the time
is out; a sleep is a timer alone. A client costs a stack, as large as
its thread's would be, and no thread. The loops start with the first
client served on one and run as long as the process; each keeps up to
256 idle fibers for its next clients.

srvspawn() posts the client to its loop once it is counted, what is
posted made before so that posting cannot fail. A service whose clients
cannot share a thread (threadperclient), or listening for connections
back (-R), all of its clients waiting for one socket, which a loop
waits for once, keeps a thread for each client, as does every service
of a build or a processor without fibers, and the standalone services.

tests/run.py --loopmode runs every configuration with loopmode on, on
two loops.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 23:00:16 +03:00
..
3proxy_crypt.8 Copyright update 2026-05-08 18:07:08 +03:00
3proxy.8 Share one listening socket among services on one address 2026-10-15 12:31:50 +03:00
3proxy.cfg.5 Clients of TCP services on event loops, served by fibers 2026-10-24 23:00:16 +03:00
ftppr.8 Copyright update 2026-05-08 18:07:08 +03:00
imapp.8 Added imapp, starttls support for smtpp, pop3p, tlspr 2026-07-22 16:15:50 +03:00
pop3p.8 Added imapp, starttls support for smtpp, pop3p, tlspr 2026-07-22 16:15:50 +03:00
proxy.8 Copyright update 2026-05-08 18:07:08 +03:00
smtpp.8 Added imapp, starttls support for smtpp, pop3p, tlspr 2026-07-22 16:15:50 +03:00
socks.8 Copyright update 2026-05-08 18:07:08 +03:00
tcppm.8 Copyright update 2026-05-08 18:07:08 +03:00
tlspr.8 Fix cmake build 2026-07-22 16:23:11 +03:00
udppm.8 Copyright update 2026-05-08 18:07:08 +03:00