diff options
| author | Stefan Boberg <[email protected]> | 2026-04-03 16:26:54 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2026-04-03 16:26:54 +0200 |
| commit | 68f033f2680c9efb7eb31f738247a98183300661 (patch) | |
| tree | ef28c8bca84534c46662e83d42079182369517c1 /src/zenhttp/servers/httpsys.cpp | |
| parent | Merge branch 'sb/compute-oidc-auth' of https://github.ol.epicgames.net/ue-fou... (diff) | |
| download | zen-68f033f2680c9efb7eb31f738247a98183300661.tar.xz zen-68f033f2680c9efb7eb31f738247a98183300661.zip | |
Add async ASIO I/O path for Horde agent connections
Replace the blocking thread-per-component model (5 threads per agent)
with an optional shared io_context + callback-based async I/O path,
toggled via HordeConfig::UseAsyncIo.
New async classes added alongside existing sync ones:
- AsyncTcpComputeTransport: async connect/read/write on shared io_context
- AsyncAesComputeTransport: async AES-256-GCM wrapper
- AsyncComputeSocket: async frame multiplexer with recv pump, send queue, ping timer
- AsyncAgentMessageChannel: callback-based message protocol with timeout support
- AsyncHordeAgent: state machine driving the full agent lifecycle
Provisioner changes:
- Shared io_context with 3 worker threads (only when UseAsyncIo=true)
- ThreadAgent forks to async path after HTTP provisioning
- Async agents clean up via completion callbacks
Diffstat (limited to 'src/zenhttp/servers/httpsys.cpp')
0 files changed, 0 insertions, 0 deletions