feat(raft-drive-async): bound peer connect (O_NONBLOCK+poll), close tasks 1.3/1.4/1.5

socket_connect sets O_NONBLOCK before connect and bounds the attempt with
poll(timeout); new connect_timeout_ms param (0=DEFAULT_CONNECT_TIMEOUT_MS);
all 5 callers updated (ha.c x3, client.c, xcectx.c). Revalidation Trigger:
shared netio helper signature changed. Broad build links all components;
xcelib_test 278/0, controller_unit_test 194/0. 1.4/1.5 unit tests satisfied
by the TDD output of 1.2/1.3 (test_slowlane.c, test_netio_bounded_connect.c).
This commit is contained in:
Rongsong Shen 2026-06-26 07:10:53 +00:00
parent 5650acd375
commit 0781c6c027
9 changed files with 289 additions and 18 deletions

View file

@ -6,6 +6,7 @@
#include "client.h"
#include "client_internal.h"
#include "config.h" /* DEFAULT_CONNECT_TIMEOUT_MS */
#include "controller.capnp.h"
#include "mylock.h"
@ -155,7 +156,8 @@ int xcecli_start(xcecli_ctx_t c)
ctx->ep.iomgr = &(ctx->ctx.iomgr);
}
rc = endpoint_connect(&(ctx->ep), ctx->conf->masters[i],
ctx->conf->master_ports[i]);
ctx->conf->master_ports[i],
DEFAULT_CONNECT_TIMEOUT_MS);
if (rc >= 0) {
connected_idx = i;
break;