Skip to content

Commit 5f51256

Browse files
author
Ignacio Bonafonte
committed
Xcode 13.2 adds support to Activity framework, so we can use ActivityContext context management to recover active Span and Baggage, we can remove TaskLocalContextManager.
Add a lot of extra tests so we can confirm Activity framework is working as expected in all situations
1 parent 42c7756 commit 5f51256

File tree

5 files changed

+215
-344
lines changed

5 files changed

+215
-344
lines changed

Sources/OpenTelemetryApi/Context/ActivityContextManager.swift

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@ private let OS_ACTIVITY_CURRENT = unsafeBitCast(dlsym(UnsafeMutableRawPointer(bi
1616

1717
class ActivityContextManager: ContextManager {
1818
static let instance = ActivityContextManager()
19-
#if swift(>=5.5.2)
20-
@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)
21-
static let taskLocalContextManager = TaskLocalContextManager.instance
22-
#endif
2319

2420
let rlock = NSRecursiveLock()
2521

@@ -28,8 +24,6 @@ class ActivityContextManager: ContextManager {
2824
self.scope = scope
2925
}
3026

31-
deinit {}
32-
3327
var scope: os_activity_scope_state_s
3428
}
3529

@@ -38,13 +32,6 @@ class ActivityContextManager: ContextManager {
3832
var contextMap = [os_activity_id_t: [String: AnyObject]]()
3933

4034
func getCurrentContextValue(forKey key: OpenTelemetryContextKeys) -> AnyObject? {
41-
#if swift(>=5.5.2)
42-
if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) {
43-
if let contextValue = ActivityContextManager.taskLocalContextManager.getCurrentContextValue(forKey: key) {
44-
return contextValue
45-
}
46-
}
47-
#endif
4835
var parentIdent: os_activity_id_t = 0
4936
let activityIdent = os_activity_get_identifier(OS_ACTIVITY_CURRENT, &parentIdent)
5037
var contextValue: AnyObject?
@@ -59,20 +46,6 @@ class ActivityContextManager: ContextManager {
5946
}
6047

6148
func setCurrentContextValue(forKey key: OpenTelemetryContextKeys, value: AnyObject) {
62-
#if swift(>=5.5.2)
63-
if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) {
64-
var insideTask = false
65-
withUnsafeCurrentTask { task in
66-
if task != nil {
67-
insideTask = true
68-
}
69-
}
70-
if insideTask {
71-
ActivityContextManager.taskLocalContextManager.setCurrentContextValue(forKey: key, value: value)
72-
return
73-
}
74-
}
75-
#endif
7649
var parentIdent: os_activity_id_t = 0
7750
var activityIdent = os_activity_get_identifier(OS_ACTIVITY_CURRENT, &parentIdent)
7851
rlock.lock()
@@ -96,20 +69,6 @@ class ActivityContextManager: ContextManager {
9669
}
9770

9871
func removeContextValue(forKey key: OpenTelemetryContextKeys, value: AnyObject) {
99-
#if swift(>=5.5.2)
100-
if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) {
101-
var insideTask = false
102-
withUnsafeCurrentTask { task in
103-
if task != nil {
104-
insideTask = true
105-
}
106-
}
107-
if insideTask {
108-
ActivityContextManager.taskLocalContextManager.removeContextValue(forKey: key, value: value)
109-
return
110-
}
111-
}
112-
#endif
11372
if let scope = objectScope.object(forKey: value) {
11473
var scope = scope.scope
11574
os_activity_scope_leave(&scope)

Sources/OpenTelemetryApi/Context/TaskLocalContextManager.swift

Lines changed: 0 additions & 116 deletions
This file was deleted.

Sources/OpenTelemetryApi/Trace/PropagatedSpanBuilder.swift

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,19 @@ class PropagatedSpanBuilder: SpanBuilder {
1010
private var tracer: Tracer
1111
private var isRootSpan: Bool = false
1212
private var spanContext: SpanContext?
13-
private var spanName: String
1413

15-
16-
init(tracer: Tracer, spanName: String = "") {
14+
init(tracer: Tracer, spanName: String) {
1715
self.tracer = tracer
18-
self.spanName = spanName
1916
}
2017

2118
@discardableResult public func startSpan() -> Span {
2219
if spanContext == nil, !isRootSpan {
2320
spanContext = OpenTelemetry.instance.contextProvider.activeSpan?.context
2421
}
25-
let span = PropagatedSpan(context: spanContext ?? SpanContext.create(traceId: TraceId.random(),
22+
return PropagatedSpan(context: spanContext ?? SpanContext.create(traceId: TraceId.random(),
2623
spanId: SpanId.random(),
2724
traceFlags: TraceFlags(),
2825
traceState: TraceState()))
29-
span.name = spanName
30-
return span
3126
}
3227

3328
@discardableResult public func setParent(_ parent: Span) -> Self {

0 commit comments

Comments
 (0)