feat(ha): add phase2_done, repl_ack_count, n_peers, client_ssl_ctx fields and CTRL_PRIMARY_COMMITTING enum
Task 2.1 of election-iomgr-refactor spec. Adds the new ha_state_t fields required for the COMMITTING phase FSM, the CTRL_PRIMARY_COMMITTING role enum value, and the committing_timeout_ms config field with its default constant. ha_init() explicitly zero-initialises all new fields. Unit test verifies zero-init and enum distinctness. Requirements: 5.2, 8.1 (election-iomgr-refactor spec)
This commit is contained in:
parent
c3caab49a6
commit
e42564b3bd
3 changed files with 79 additions and 14 deletions
|
|
@ -94,6 +94,13 @@ int ha_init(ha_state_t *ha, const ha_config_t *cfg, int my_priority)
|
|||
ha->standby_endpoints = NULL;
|
||||
ha->primary_ctrl_fd = -1;
|
||||
|
||||
/* election-iomgr-refactor Task 2.1: explicit zero-init for documentation clarity
|
||||
* (memset above already zeroes these, but being explicit is better documentation) */
|
||||
ha->client_ssl_ctx = NULL;
|
||||
ha->phase2_done = 0;
|
||||
ha->n_peers = 0;
|
||||
atomic_store_explicit(&ha->repl_ack_count, 0, memory_order_relaxed);
|
||||
|
||||
/* heartbeat_seen starts at 0: no heartbeat seen yet.
|
||||
* ha_wait_for_heartbeat_or_timeout() calls sem_timedwait on this. */
|
||||
sem_init(&ha->heartbeat_seen, 0, 0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue