Skip to content

btc(v36): complete twin-parity — think-independent 10s re-advert timer leg (follow-up to merged #105) - #110

Merged
frstrtr merged 1 commit into
masterfrom
btc/root2-genesis-null-advert
Jun 16, 2026
Merged

btc(v36): complete twin-parity — think-independent 10s re-advert timer leg (follow-up to merged #105)#110
frstrtr merged 1 commit into
masterfrom
btc/root2-genesis-null-advert

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 16, 2026

Copy link
Copy Markdown
Owner

Follow-up to #105, which merged at 11:06:55Z carrying only the event-leg half-fix (659b95c) — one minute before integrator froze the merge tap. Master therefore currently has the timer-LESS half-fix (the same shape disavowed for LTC, #103). This PR lands the orphaned timer leg f3539c16 to complete twin-parity with #104/e01c1606.

Adds m_readvert_timer (one-shot core::Timer, 10s -> readvertise_best()), armed lazily in the run_think IO-phase, fired exactly once when the verified chain first becomes non-empty. The event leg dies when think() wedges; this think-independent leg survives a wedged think() (composes with merged #97 watchdog). Livelock-safe by construction: pure reads, broadcast stays try_to_lock, no new mutex.

Gate: ctest + twin-parity re-confirm by claudecode before merge tap.

Mirror the LTC timer leg from #104/e01c1606. The event leg
(readvertise_best on think work-refresh + clean_tracker best-change)
goes dead exactly when think() wedges -- the livelock-adjacent scenario
this fix family targets. Arm a one-shot core::Timer(10s) -> readvertise_best()
in the run_think IO-phase, fired exactly once when the verified chain
first becomes non-empty, so a peer that handshook during the empty
window can still ingest our chain even if a later think() cycle wedges.

Composes with the merged #97 think-watchdog: timer runs on the IO
thread, pure reads, broadcast stays try_to_lock, no new mutex.
@frstrtr
frstrtr merged commit a504426 into master Jun 16, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant