Skip to content

Commit a5436b8

Browse files
author
Ignacio Bonafonte
authored
Merge pull request #400 from seemk/fix-span-end-check
fix: avoid ending spans multiple times
2 parents 2d7f897 + 6969ff9 commit a5436b8

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

Sources/OpenTelemetrySdk/Trace/RecordEventsReadableSpan.swift

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -290,14 +290,19 @@ public class RecordEventsReadableSpan: ReadableSpan {
290290
}
291291

292292
public func end(time: Date) {
293-
internalStatusQueue.sync(flags: .barrier) {
293+
let alreadyEnded = internalStatusQueue.sync(flags: .barrier) {
294294
if internalEnd {
295-
return
296-
297-
} else {
298-
internalEnd = true
295+
return true
299296
}
297+
298+
internalEnd = true
299+
return false
300300
}
301+
302+
if alreadyEnded {
303+
return
304+
}
305+
301306
eventsSyncLock.withLockVoid {
302307
attributesSyncLock.withLockVoid {
303308
isRecording = false

0 commit comments

Comments
 (0)