Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions ddtrace/_trace/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,13 +111,13 @@ def _update_active(self, span: Span) -> Optional[ActiveTrace]:
When a span finishes, the active span becomes its parent.
If no parent exists and the context is reactivatable, that context is restored.
"""
if span.finished:
new_active: Optional[Span] = span
while new_active and new_active.finished:
if new_active._parent is None and new_active._parent_context and new_active._parent_context._reactivate:
self.activate(new_active._parent_context)
return new_active._parent_context
new_active = new_active._parent
new_active: Optional[Span] = span
# PERF: Avoid calling `Span.finished` more than once per span. This is a computed property.
while new_active and new_active.finished:
if new_active._parent is None and new_active._parent_context and new_active._parent_context._reactivate:
self.activate(new_active._parent_context)
return new_active._parent_context
new_active = new_active._parent
if new_active is not span:
self.activate(new_active)
return new_active
return span
return new_active
Loading