Skip to content

Commit ba29f0c

Browse files
committed
remove finished
1 parent ad6e7cc commit ba29f0c

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

sentry_sdk/traces.py

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,6 @@ class StreamedSpan:
199199
"_parent_sampled",
200200
"_start_timestamp",
201201
"_start_timestamp_monotonic_ns",
202-
"_finished",
203202
"_timestamp",
204203
"_status",
205204
"_scope",
@@ -238,7 +237,6 @@ def __init__(
238237

239238
self._start_timestamp = datetime.now(timezone.utc)
240239
self._timestamp: "Optional[datetime]" = None
241-
self._finished: bool = False
242240

243241
try:
244242
# profiling depends on this value and requires that
@@ -282,15 +280,7 @@ def end(self, end_timestamp: "Optional[Union[float, datetime]]" = None) -> None:
282280
:param end_timestamp: End timestamp to use instead of current time.
283281
:type end_timestamp: "Optional[Union[float, datetime]]"
284282
"""
285-
try:
286-
if end_timestamp and self._timestamp is None:
287-
if isinstance(end_timestamp, float):
288-
end_timestamp = datetime.fromtimestamp(end_timestamp, timezone.utc)
289-
self._timestamp = end_timestamp
290-
except AttributeError:
291-
logger.debug(f"Failed to set end_timestamp: {end_timestamp}")
292-
293-
self._end()
283+
self._end(end_timestamp)
294284

295285
def finish(self, end_timestamp: "Optional[Union[float, datetime]]" = None) -> None:
296286
warnings.warn(
@@ -307,8 +297,8 @@ def _start(self) -> None:
307297
self._scope.span = self
308298
self._previous_span_on_scope = old_span
309299

310-
def _end(self) -> None:
311-
if self._finished is True:
300+
def _end(self, end_timestamp: "Optional[Union[float, datetime]]" = None) -> None:
301+
if self._timestamp is not None:
312302
# This span is already finished, ignore.
313303
return
314304

@@ -323,7 +313,15 @@ def _end(self) -> None:
323313
self.set_attribute("sentry.segment.id", self._segment.span_id)
324314
self.set_attribute("sentry.segment.name", self._segment.name)
325315

326-
# Set the end timestamp if not set yet (e.g. via span.end(<timestamp>))
316+
# Set the end timestamp
317+
if end_timestamp is not None:
318+
try:
319+
if isinstance(end_timestamp, float):
320+
end_timestamp = datetime.fromtimestamp(end_timestamp, timezone.utc)
321+
self._timestamp = end_timestamp
322+
except Exception:
323+
logger.debug(f"Failed to set end_timestamp: {end_timestamp}")
324+
327325
if self._timestamp is None:
328326
try:
329327
elapsed = nanosecond_time() - self._start_timestamp_monotonic_ns
@@ -333,8 +331,6 @@ def _end(self) -> None:
333331
except AttributeError:
334332
self._timestamp = datetime.now(timezone.utc)
335333

336-
self._finished = True
337-
338334
client = sentry_sdk.get_client()
339335
if not client.is_active():
340336
return

0 commit comments

Comments
 (0)