mirror of
https://github.com/element-hq/synapse.git
synced 2026-11-04 15:37:49 +00:00
Rust work spawned from Python needs the caller's span as the parent of the spans it will report. `LogContextHandle::capture` now reads the active span's context (trace ID, span ID, flags, baggage) off the logcontext's scope, but only once a homeserver has enabled tracing. Otherwise a capture costs one relaxed atomic load. A capture inside a task copies the task's handle, so the span stays the one the task was spawned under. The `_blocking` entry points ran their futures on the reactor thread with no handle at all. They now go through `RustRuntime.block_on_scoped`, which spawns the future with a captured handle and blocks on the join, the same as `create_deferred`. `init_tracer` hands the Jaeger tracer's service name, process tags, agent address and sampler to `RustRuntime.enable_tracing`, which stores them for the reporter that follows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W4zxygfJC93SsugxskhoJG