Skip to content

Commit 62e7602

Browse files
committed
Provide Sendable conformance in all other places
1 parent 911d702 commit 62e7602

File tree

6 files changed

+11
-9
lines changed

6 files changed

+11
-9
lines changed

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// swift-tools-version:5.9
1+
// swift-tools-version: 5.9
22
import PackageDescription
33

44
let package = Package(

Sources/TelemetryClient/LogHandler.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Foundation
22

3-
public struct LogHandler {
4-
public enum LogLevel: Int, CustomStringConvertible {
3+
public struct LogHandler: Sendable {
4+
public enum LogLevel: Int, CustomStringConvertible, Sendable {
55
case debug = 0
66
case info = 1
77
case error = 2
@@ -19,9 +19,9 @@ public struct LogHandler {
1919
}
2020

2121
let logLevel: LogLevel
22-
let handler: (LogLevel, String) -> Void
22+
let handler: @Sendable (LogLevel, String) -> Void
2323

24-
public init(logLevel: LogHandler.LogLevel, handler: @escaping (LogHandler.LogLevel, String) -> Void) {
24+
public init(logLevel: LogHandler.LogLevel, handler: @escaping @Sendable (LogHandler.LogLevel, String) -> Void) {
2525
self.logLevel = logLevel
2626
self.handler = handler
2727
}
@@ -32,7 +32,7 @@ public struct LogHandler {
3232
}
3333
}
3434

35-
public static var stdout = { logLevel in
35+
public static func stdout(_ logLevel: LogLevel) -> LogHandler {
3636
LogHandler(logLevel: logLevel) { level, message in
3737
print("[TelemetryDeck: \(level.description)] \(message)")
3838
}

Sources/TelemetryClient/SignalCache.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import Foundation
77
/// correctly.
88
///
99
/// Currently the cache is only in-memory. This will probably change in the near future.
10-
internal class SignalCache<T> where T: Codable {
10+
internal class SignalCache<T>: @unchecked Sendable where T: Codable {
1111
internal var logHandler: LogHandler?
1212

1313
private var cachedSignals: [T] = []

Sources/TelemetryClient/SignalEnricher.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Foundation
22

3-
public protocol SignalEnricher {
3+
public protocol SignalEnricher: Sendable {
44
func enrich(
55
signalType: String,
66
for clientUser: String?,

Sources/TelemetryClient/SignalManager.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ internal final class SignalManager: SignalManageable, @unchecked Sendable {
104104
/// Sends one batch of signals from the cache if not empty.
105105
/// If signals fail to send, we put them back into the cache to try again later.
106106
@objc
107+
@Sendable
107108
internal func attemptToSendNextBatchOfCachedSignals() {
108109
configuration.logHandler?.log(.debug, message: "Current signal cache count: \(signalCache.count())")
109110

Sources/TelemetryClient/TelemetryClient.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ public struct TelemetryManagerConfiguration: Sendable {
182182
/// Accepts signals that signify events in your app's life cycle, collects and caches them, and pushes them to the Telemetry API.
183183
///
184184
/// Use an instance of `TelemetryManagerConfiguration` to configure this at initialization and during its lifetime.
185-
public class TelemetryManager {
185+
public final class TelemetryManager: @unchecked Sendable {
186186
/// Returns `true` when the TelemetryManager already has been initialized correctly, `false` otherwise.
187187
public static var isInitialized: Bool {
188188
initializedTelemetryManager != nil
@@ -337,6 +337,7 @@ public class TelemetryManager {
337337
self.signalManager = signalManager
338338
}
339339

340+
nonisolated(unsafe)
340341
private static var initializedTelemetryManager: TelemetryManager?
341342

342343
private var configuration: TelemetryManagerConfiguration

0 commit comments

Comments
 (0)