Skip to content

Commit 502d98b

Browse files
committed
Fix Swift 5.10 concurrency warnings
1 parent 7910f50 commit 502d98b

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

Package.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
import PackageDescription
33

44

5+
let commonSwiftSettings: [SwiftSetting] = [
6+
/* Set swift-tools-version to 5.8 to have this available. */
7+
// .enableExperimentalFeature("StrictConcurrency")
8+
]
9+
510
let package = Package(
611
name: "json-logger",
712
platforms: [
@@ -31,7 +36,7 @@ let package = Package(
3136
ret.append(.product(name: "SystemPackage", package: "swift-system"))
3237
#endif
3338
return ret
34-
}(), path: "Sources"),
35-
.testTarget(name: "JSONLoggerTests", dependencies: ["JSONLogger"], path: "Tests")
39+
}(), path: "Sources", swiftSettings: commonSwiftSettings),
40+
.testTarget(name: "JSONLoggerTests", dependencies: ["JSONLogger"], path: "Tests", swiftSettings: commonSwiftSettings)
3641
]
3742
)

Sources/JSONLogger.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,14 @@ public struct JSONLogger : LogHandler {
187187
}
188188

189189
/* Do _not_ use os_unfair_lock, apparently it is bad in Swift:
190-
* <https://twitter.com/grynspan/status/1392080373752995849>. */
191-
private static var lock = NSLock()
190+
* <https://twitter.com/grynspan/status/1392080373752995849>.
191+
* And OSAllocatedUnfairLock is not available on Linux. */
192+
private static let lock = NSLock()
193+
#if swift(>=5.10)
194+
private static nonisolated(unsafe) var isFirstLog = true
195+
#else
192196
private static var isFirstLog = true
197+
#endif
193198

194199
private var jsonMetadataCache: JSON = .object([:])
195200

0 commit comments

Comments
 (0)