mirror of
https://github.com/XRPLF/rippled.git
synced 2026-07-23 15:10:34 +00:00
Add SpanGuard::activate() returning a ScopedActivation RAII helper that activates an already-owned span (from a thread-free SpanGuard) as the current context WITHOUT taking ownership. The activation pushes the span onto the current LocalValue context store on construction and pops it on destruction; it never ends the span (its owning SpanGuard does). This lets a job-handoff span be made ambient for the duration of a synchronous, non-yielding worker body so log lines there carry the span's trace_id. Non-copyable and non-movable, mirroring ScopedSpanGuard. owner is captured after the Scope push via declaration-order member initialization (scope declared before owner), matching the A3 capture-after-materialization invariant. A #else no-op stub keeps the API zero-overhead when telemetry is compiled out. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>