Skip to content

Commit feb3b7c

Browse files
author
Nacho Bonafonte
committed
Remove use of atomics library, use instead a Lock for the access.
1 parent aec918c commit feb3b7c

File tree

3 files changed

+13
-16
lines changed

3 files changed

+13
-16
lines changed

Package.resolved

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,13 @@ let package = Package(
3535
.package(name: "Thrift", url: "https://github.com/undefinedlabs/Thrift-Swift", from: "1.1.1"),
3636
.package(name: "swift-nio", url: "https://github.com/apple/swift-nio.git", from: "2.0.0"),
3737
.package(name: "grpc-swift", url: "https://github.com/grpc/grpc-swift.git", from: "1.0.0"),
38-
.package(name: "swift-atomics", url: "https://github.com/apple/swift-atomics.git", "0.0.2"..."2.0.0"),
3938
.package(name: "swift-metrics", url: "https://github.com/apple/swift-metrics.git", from: "2.1.1"),
4039
],
4140
targets: [
4241
.target(name: "OpenTelemetryApi",
4342
dependencies: []),
4443
.target(name: "OpenTelemetrySdk",
45-
dependencies: ["OpenTelemetryApi",
46-
.product(name: "Atomics", package: "swift-atomics")]),
44+
dependencies: ["OpenTelemetryApi"]),
4745
.target(name: "ResourceExtension",
4846
dependencies: ["OpenTelemetrySdk"],
4947
path: "Sources/Instrumentation/SDKResourceExtension",

Sources/OpenTelemetrySdk/Trace/RecordEventsReadableSpan.swift

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
import Atomics
76
import Foundation
87
import OpenTelemetryApi
98

@@ -73,9 +72,12 @@ public class RecordEventsReadableSpan: ReadableSpan {
7372
/// The end time of the span.
7473
public private(set) var endTime: Date?
7574
/// True if the span is ended.
76-
fileprivate var endAtomic = ManagedAtomic<Bool>(false)
75+
fileprivate var endAtomic = false
76+
private let endSyncLock = Lock()
7777
public var hasEnded: Bool {
78-
return self.endAtomic.load(ordering: .relaxed)
78+
endSyncLock.withLock {
79+
return endAtomic
80+
}
7981
}
8082

8183
private let eventsSyncLock = Lock()
@@ -260,9 +262,15 @@ public class RecordEventsReadableSpan: ReadableSpan {
260262
}
261263

262264
public func end(time: Date) {
263-
if endAtomic.exchange(true, ordering: .relaxed) {
265+
var wasAlreadyEnded = false
266+
endSyncLock.withLockVoid {
267+
wasAlreadyEnded = endAtomic
268+
endAtomic = true
269+
}
270+
if wasAlreadyEnded {
264271
return
265272
}
273+
266274
eventsSyncLock.withLockVoid {
267275
attributesSyncLock.withLockVoid {
268276
isRecording = false

0 commit comments

Comments
 (0)