Build Information
Successful build of CocoaMQTT, reference master (9a7564), with Swift 6.1 for macOS (SPM) on 27 Apr 2026 18:07:39 UTC.
Swift 6 data race errors: 3
Build Command
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCapturesBuild Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/emqx/CocoaMQTT.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/emqx/CocoaMQTT
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at 9a75649 chore: prepare 2.2.4 release
Cloned https://github.com/emqx/CocoaMQTT.git
Revision (git rev-parse @):
9a756497f412214b9a7e9f40ea908dbd977bfaba
SUCCESS checkout https://github.com/emqx/CocoaMQTT.git at master
========================================
Build
========================================
Selected platform: macosSpm
Swift version: 6.1
Building package at path: $PWD
https://github.com/emqx/CocoaMQTT.git
https://github.com/emqx/CocoaMQTT.git
{
"dependencies" : [
{
"identity" : "starscream",
"requirement" : {
"range" : [
{
"lower_bound" : "4.0.8",
"upper_bound" : "6.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/daltoniam/Starscream.git"
},
{
"identity" : "mqttcocoaasyncsocket",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.8",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/leeway1208/MqttCocoaAsyncSocket"
},
{
"identity" : "swiftlintplugins",
"requirement" : {
"range" : [
{
"lower_bound" : "0.63.2",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/SimplyDanny/SwiftLintPlugins"
}
],
"manifest_display_name" : "CocoaMQTT",
"name" : "CocoaMQTT",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "12.0"
}
],
"products" : [
{
"name" : "CocoaMQTT",
"targets" : [
"CocoaMQTT"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "CocoaMQTTWebSocket",
"targets" : [
"CocoaMQTTWebSocket"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "CocoaMQTTWebSocket",
"module_type" : "SwiftTarget",
"name" : "CocoaMQTTWebSocket",
"path" : "Source",
"product_dependencies" : [
"Starscream"
],
"product_memberships" : [
"CocoaMQTTWebSocket"
],
"sources" : [
"CocoaMQTTWebSocket.swift"
],
"target_dependencies" : [
"CocoaMQTT"
],
"type" : "library"
},
{
"c99name" : "CocoaMQTTTests",
"module_type" : "SwiftTarget",
"name" : "CocoaMQTTTests",
"path" : "CocoaMQTTTests",
"sources" : [
"CocoaMQTT5PublishValidationTests.swift",
"CocoaMQTT5ReasonCodeFallbackTests.swift",
"CocoaMQTT5ReceiveMessageContentTypeTests.swift",
"CocoaMQTTDeliverTests.swift",
"CocoaMQTTReaderProtocolErrorTests.swift",
"CocoaMQTTStorageTests.swift",
"CocoaMQTTTests.swift",
"ConcurrentAtomicTests.swift",
"FrameTests.swift",
"PublicLoggerAPITests.swift",
"ThreadSafetyRegressionTests.swift"
],
"target_dependencies" : [
"CocoaMQTT",
"CocoaMQTTWebSocket"
],
"type" : "test"
},
{
"c99name" : "CocoaMQTT",
"module_type" : "SwiftTarget",
"name" : "CocoaMQTT",
"path" : "Source",
"product_dependencies" : [
"MqttCocoaAsyncSocket"
],
"product_memberships" : [
"CocoaMQTT",
"CocoaMQTTWebSocket"
],
"sources" : [
"CocoaMQTT.swift",
"CocoaMQTT5.swift",
"CocoaMQTT5Message.swift",
"CocoaMQTTDeliver.swift",
"CocoaMQTTLogger.swift",
"CocoaMQTTMessage.swift",
"CocoaMQTTProperty.swift",
"CocoaMQTTReader.swift",
"CocoaMQTTReasonCode.swift",
"CocoaMQTTSocket.swift",
"CocoaMQTTStorage.swift",
"CocoaMQTTTimer.swift",
"CocoaMQTTTypes.swift",
"Frame.swift",
"FrameAuth.swift",
"FrameConnAck.swift",
"FrameConnect.swift",
"FrameDisconnect.swift",
"FramePingReq.swift",
"FramePingResp.swift",
"FramePubAck.swift",
"FramePubComp.swift",
"FramePubRec.swift",
"FramePubRel.swift",
"FramePublish.swift",
"FrameSubAck.swift",
"FrameSubscribe.swift",
"FrameUnsubAck.swift",
"FrameUnsubscribe.swift",
"MqttAuthProperties.swift",
"MqttConnectProperties.swift",
"MqttDecodeConnAck.swift",
"MqttDecodePubAck.swift",
"MqttDecodePubComp.swift",
"MqttDecodePubRec.swift",
"MqttDecodePubRel.swift",
"MqttDecodePublish.swift",
"MqttDecodeSubAck.swift",
"MqttDecodeUnsubAck.swift",
"MqttPublishProperties.swift",
"MqttSubscription.swift",
"ThreadSafeDictionary.swift",
"utilities/ConcurrentAtomic.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
[1/1] Compiling plugin SwiftLintCommandPlugin
[2/2] Compiling plugin SwiftLintBuildToolPlugin
Building for debugging...
[2/9] Write sources
[2/9] Copying PrivacyInfo.xcprivacy
[2/9] Write sources
[6/9] Write swift-version-2F0A5646E1D333AE.txt
[7/29] Compiling MqttCocoaAsyncSocket MGCDAsyncUdpSocket.m
[8/29] Compiling MqttCocoaAsyncSocket MGCDAsyncSocket.m
[10/69] Emitting module Starscream
[11/71] Emitting module CocoaMQTT
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift:41:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 | public nonisolated(unsafe) static var logger = CocoaMQTTLogger()
40 | #else
41 | public static var logger = CocoaMQTTLogger()
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | #endif
43 | public override init() { super.init() }
[12/75] Compiling CocoaMQTT MqttPublishProperties.swift
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:17: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
41 | set(newValue) {
42 | concurrentQueue.async(flags: .barrier) {[weak self] in
43 | self?.dictionary[key] = newValue
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
44 | }
45 | }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:34: warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: consider making generic parameter 'K' conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
41 | set(newValue) {
42 | concurrentQueue.async(flags: .barrier) {[weak self] in
43 | self?.dictionary[key] = newValue
| `- warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
44 | }
45 | }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:41: warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: consider making generic parameter 'V' conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
41 | set(newValue) {
42 | concurrentQueue.async(flags: .barrier) {[weak self] in
43 | self?.dictionary[key] = newValue
| `- warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
44 | }
45 | }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:63:13: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
61 | public func removeAll() {
62 | concurrentQueue.async(flags: .barrier) {[weak self] in
63 | self?.dictionary.removeAll()
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:17: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
| `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 | private var _value: T
21 | private let queue: DispatchQueue
:
32 | set {
33 | queue.async(flags: .barrier) {
34 | self._value = newValue
| `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
35 | }
36 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:31: warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
20 | private var _value: T
21 | private let queue: DispatchQueue
:
32 | set {
33 | queue.async(flags: .barrier) {
34 | self._value = newValue
| `- warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
35 | }
36 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:13: warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
68 | public func mutate(_ transform: @escaping (inout T) -> Void) {
69 | queue.async(flags: .barrier) {
70 | transform(&self._value)
| |- warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
71 | }
72 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:24: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
| `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 | private var _value: T
21 | private let queue: DispatchQueue
:
68 | public func mutate(_ transform: @escaping (inout T) -> Void) {
69 | queue.async(flags: .barrier) {
70 | transform(&self._value)
| `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
71 | }
72 | }
[13/75] Compiling CocoaMQTT MqttSubscription.swift
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:17: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
41 | set(newValue) {
42 | concurrentQueue.async(flags: .barrier) {[weak self] in
43 | self?.dictionary[key] = newValue
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
44 | }
45 | }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:34: warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: consider making generic parameter 'K' conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
41 | set(newValue) {
42 | concurrentQueue.async(flags: .barrier) {[weak self] in
43 | self?.dictionary[key] = newValue
| `- warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
44 | }
45 | }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:41: warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: consider making generic parameter 'V' conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
41 | set(newValue) {
42 | concurrentQueue.async(flags: .barrier) {[weak self] in
43 | self?.dictionary[key] = newValue
| `- warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
44 | }
45 | }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:63:13: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
61 | public func removeAll() {
62 | concurrentQueue.async(flags: .barrier) {[weak self] in
63 | self?.dictionary.removeAll()
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:17: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
| `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 | private var _value: T
21 | private let queue: DispatchQueue
:
32 | set {
33 | queue.async(flags: .barrier) {
34 | self._value = newValue
| `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
35 | }
36 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:31: warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
20 | private var _value: T
21 | private let queue: DispatchQueue
:
32 | set {
33 | queue.async(flags: .barrier) {
34 | self._value = newValue
| `- warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
35 | }
36 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:13: warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
68 | public func mutate(_ transform: @escaping (inout T) -> Void) {
69 | queue.async(flags: .barrier) {
70 | transform(&self._value)
| |- warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
71 | }
72 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:24: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
| `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 | private var _value: T
21 | private let queue: DispatchQueue
:
68 | public func mutate(_ transform: @escaping (inout T) -> Void) {
69 | queue.async(flags: .barrier) {
70 | transform(&self._value)
| `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
71 | }
72 | }
[14/75] Compiling CocoaMQTT ThreadSafeDictionary.swift
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:17: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
41 | set(newValue) {
42 | concurrentQueue.async(flags: .barrier) {[weak self] in
43 | self?.dictionary[key] = newValue
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
44 | }
45 | }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:34: warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: consider making generic parameter 'K' conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
41 | set(newValue) {
42 | concurrentQueue.async(flags: .barrier) {[weak self] in
43 | self?.dictionary[key] = newValue
| `- warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
44 | }
45 | }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:41: warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: consider making generic parameter 'V' conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
41 | set(newValue) {
42 | concurrentQueue.async(flags: .barrier) {[weak self] in
43 | self?.dictionary[key] = newValue
| `- warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
44 | }
45 | }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:63:13: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
61 | public func removeAll() {
62 | concurrentQueue.async(flags: .barrier) {[weak self] in
63 | self?.dictionary.removeAll()
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:17: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
| `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 | private var _value: T
21 | private let queue: DispatchQueue
:
32 | set {
33 | queue.async(flags: .barrier) {
34 | self._value = newValue
| `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
35 | }
36 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:31: warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
20 | private var _value: T
21 | private let queue: DispatchQueue
:
32 | set {
33 | queue.async(flags: .barrier) {
34 | self._value = newValue
| `- warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
35 | }
36 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:13: warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
68 | public func mutate(_ transform: @escaping (inout T) -> Void) {
69 | queue.async(flags: .barrier) {
70 | transform(&self._value)
| |- warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
71 | }
72 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:24: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
| `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 | private var _value: T
21 | private let queue: DispatchQueue
:
68 | public func mutate(_ transform: @escaping (inout T) -> Void) {
69 | queue.async(flags: .barrier) {
70 | transform(&self._value)
| `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
71 | }
72 | }
[15/75] Compiling CocoaMQTT ConcurrentAtomic.swift
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:17: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
41 | set(newValue) {
42 | concurrentQueue.async(flags: .barrier) {[weak self] in
43 | self?.dictionary[key] = newValue
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
44 | }
45 | }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:34: warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: consider making generic parameter 'K' conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
41 | set(newValue) {
42 | concurrentQueue.async(flags: .barrier) {[weak self] in
43 | self?.dictionary[key] = newValue
| `- warning: capture of 'key' with non-sendable type 'K' in a '@Sendable' closure
44 | }
45 | }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:43:41: warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: consider making generic parameter 'V' conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
41 | set(newValue) {
42 | concurrentQueue.async(flags: .barrier) {[weak self] in
43 | self?.dictionary[key] = newValue
| `- warning: capture of 'newValue' with non-sendable type 'V?' in a '@Sendable' closure
44 | }
45 | }
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift:63:13: warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
6 |
7 | /// A thread-safe dictionary
8 | public class ThreadSafeDictionary<K: Hashable, V>: Collection {
| `- note: generic class 'ThreadSafeDictionary' does not conform to the 'Sendable' protocol
9 | private var dictionary: [K: V]
10 | private let concurrentQueue: DispatchQueue
:
61 | public func removeAll() {
62 | concurrentQueue.async(flags: .barrier) {[weak self] in
63 | self?.dictionary.removeAll()
| `- warning: capture of 'self' with non-sendable type 'ThreadSafeDictionary<K, V>?' in a '@Sendable' closure
64 | }
65 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:17: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
| `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 | private var _value: T
21 | private let queue: DispatchQueue
:
32 | set {
33 | queue.async(flags: .barrier) {
34 | self._value = newValue
| `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
35 | }
36 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:34:31: warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
| `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
20 | private var _value: T
21 | private let queue: DispatchQueue
:
32 | set {
33 | queue.async(flags: .barrier) {
34 | self._value = newValue
| `- warning: capture of 'newValue' with non-sendable type 'T' in a '@Sendable' closure
35 | }
36 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:13: warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
68 | public func mutate(_ transform: @escaping (inout T) -> Void) {
69 | queue.async(flags: .barrier) {
70 | transform(&self._value)
| |- warning: capture of 'transform' with non-sendable type '(inout T) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
71 | }
72 | }
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift:70:24: warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
17 | /// ```
18 | @propertyWrapper
19 | public class ConcurrentAtomic<T> {
| `- note: generic class 'ConcurrentAtomic' does not conform to the 'Sendable' protocol
20 | private var _value: T
21 | private let queue: DispatchQueue
:
68 | public func mutate(_ transform: @escaping (inout T) -> Void) {
69 | queue.async(flags: .barrier) {
70 | transform(&self._value)
| `- warning: capture of 'self' with non-sendable type 'ConcurrentAtomic<T>' in a '@Sendable' closure
71 | }
72 | }
[16/75] Compiling CocoaMQTT FramePubRel.swift
[17/75] Compiling CocoaMQTT FramePublish.swift
[18/75] Compiling CocoaMQTT FrameSubAck.swift
[19/75] Compiling CocoaMQTT FrameSubscribe.swift
[20/75] Compiling CocoaMQTT FramePingResp.swift
[21/75] Compiling CocoaMQTT FramePubAck.swift
[22/75] Compiling CocoaMQTT FramePubComp.swift
[23/75] Compiling CocoaMQTT FramePubRec.swift
[24/75] Compiling Starscream Transport.swift
[25/75] Compiling Starscream resource_bundle_accessor.swift
[26/75] Compiling CocoaMQTT MqttDecodeConnAck.swift
[27/75] Compiling CocoaMQTT MqttDecodePubAck.swift
[28/75] Compiling CocoaMQTT MqttDecodePubComp.swift
[29/75] Compiling CocoaMQTT MqttDecodePubRec.swift
[30/75] Compiling CocoaMQTT FrameDisconnect.swift
[31/75] Compiling CocoaMQTT FramePingReq.swift
[32/75] Compiling CocoaMQTT MqttDecodePubRel.swift
[36/75] Compiling CocoaMQTT MqttDecodeUnsubAck.swift
[37/75] Compiling CocoaMQTT CocoaMQTTMessage.swift
[38/75] Compiling CocoaMQTT CocoaMQTTProperty.swift
[39/75] Compiling CocoaMQTT CocoaMQTTReader.swift
[40/75] Compiling CocoaMQTT CocoaMQTTReasonCode.swift
[41/75] Compiling CocoaMQTT CocoaMQTTSocket.swift
[42/75] Compiling CocoaMQTT FrameConnAck.swift
[43/75] Compiling CocoaMQTT FrameConnect.swift
[46/75] Compiling CocoaMQTT CocoaMQTTStorage.swift
[47/75] Compiling CocoaMQTT CocoaMQTTTimer.swift
[48/75] Compiling CocoaMQTT CocoaMQTTTypes.swift
[49/75] Compiling CocoaMQTT Frame.swift
[50/75] Compiling CocoaMQTT FrameAuth.swift
[51/75] Compiling CocoaMQTT CocoaMQTTLogger.swift
[59/75] Compiling CocoaMQTT CocoaMQTT.swift
[60/75] Compiling CocoaMQTT CocoaMQTT5.swift
[61/75] Compiling CocoaMQTT CocoaMQTT5Message.swift
[62/75] Compiling CocoaMQTT CocoaMQTTDeliver.swift
[63/75] Compiling CocoaMQTT FrameUnsubAck.swift
[64/75] Compiling CocoaMQTT FrameUnsubscribe.swift
[65/75] Compiling CocoaMQTT MqttAuthProperties.swift
[66/75] Compiling CocoaMQTT MqttConnectProperties.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:391:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
389 |
390 | delegateQueue.async { [weak self] in
391 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
392 | self.connState = .connecting
393 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
471 |
472 | delegateQueue.async {
473 | self.sendingMessages[msgid] = message
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
474 | }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:43: warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
471 |
472 | delegateQueue.async {
473 | self.sendingMessages[msgid] = message
| `- warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
474 | }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTMessage.swift:12:14: note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTTMessage: NSObject {
| `- note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
13 |
14 | public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:479:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
477 | guard deliver.add(frame) else {
478 | delegateQueue.async {
479 | self.sendingMessages.removeValue(forKey: msgid)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
480 | }
481 | return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:561:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
559 | func __delegate_queue(_ fun: @escaping () -> Void) {
560 | delegateQueue.async { [weak self] in
561 | guard self != nil else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
562 | fun()
563 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:562:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
560 | delegateQueue.async { [weak self] in
561 | guard self != nil else { return }
562 | fun()
| |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
563 | }
564 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:670:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
668 | guard let self = self else { return }
669 | self.delegateQueue.async {
670 | guard self.connState == .connected else {
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
671 | self.aliveTimer = nil
672 | return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:392:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
390 |
391 | delegateQueue.async { [weak self] in
392 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
393 | self.connState = .connecting
394 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
498 |
499 | delegateQueue.async {
500 | self.sendingMessages[msgid] = message
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
501 | }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:43: warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
498 |
499 | delegateQueue.async {
500 | self.sendingMessages[msgid] = message
| `- warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
501 | }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5Message.swift:12:14: note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTT5Message: NSObject {
| `- note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
13 |
14 | public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:506:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
504 | guard deliver.add(frame) else {
505 | delegateQueue.async {
506 | self.sendingMessages.removeValue(forKey: msgid)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
507 | }
508 | return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:612:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
610 | func __delegate_queue(_ fun: @escaping () -> Void) {
611 | delegateQueue.async { [weak self] in
612 | guard self != nil else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
613 | fun()
614 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:613:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
611 | delegateQueue.async { [weak self] in
612 | guard self != nil else { return }
613 | fun()
| |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
614 | }
615 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:734:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
732 | guard let self = self else { return }
733 | self.delegateQueue.async {
734 | guard self.connState == .connected else {
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
735 | self.aliveTimer = nil
736 | return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:90:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
88 |
89 | deliverQueue.async { [weak self] in
90 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
91 | self.tryTransport()
92 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:111:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
109 |
110 | deliverQueue.async { [weak self] in
111 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
112 | self.tryTransport()
113 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:136:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
134 |
135 | deliverQueue.async { [weak self] in
136 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
137 | let acked = self.ackInflightFrame(withMsgid: msgid, type: ackType)
138 | if acked.count == 0 {
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:197:25: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
195 | guard let self = self else { return }
196 | self.deliverQueue.async {
197 | self.redeliver()
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
198 | }
199 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:13: warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
10 | import Dispatch
11 |
12 | protocol CocoaMQTTDeliverProtocol: AnyObject {
| `- note: protocol 'CocoaMQTTDeliverProtocol' does not conform to the 'Sendable' protocol
13 |
14 | var delegateQueue: DispatchQueue { get set }
:
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:48: warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/Frame.swift:81:10: note: protocol 'Frame' does not conform to the 'Sendable' protocol
79 |
80 | /// MQTT Frame protocol
81 | protocol Frame {
| `- note: protocol 'Frame' does not conform to the 'Sendable' protocol
82 |
83 | /// Each MQTT Control Packet contains a fixed header
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift:41:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 | public nonisolated(unsafe) static var logger = CocoaMQTTLogger()
40 | #else
41 | public static var logger = CocoaMQTTLogger()
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | #endif
43 | public override init() { super.init() }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:391:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
389 |
390 | delegateQueue.async { [weak self] in
391 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
392 | self.connState = .connecting
393 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
471 |
472 | delegateQueue.async {
473 | self.sendingMessages[msgid] = message
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
474 | }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:43: warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
471 |
472 | delegateQueue.async {
473 | self.sendingMessages[msgid] = message
| `- warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
474 | }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTMessage.swift:12:14: note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTTMessage: NSObject {
| `- note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
13 |
14 | public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:479:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
477 | guard deliver.add(frame) else {
478 | delegateQueue.async {
479 | self.sendingMessages.removeValue(forKey: msgid)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
480 | }
481 | return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:561:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
559 | func __delegate_queue(_ fun: @escaping () -> Void) {
560 | delegateQueue.async { [weak self] in
561 | guard self != nil else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
562 | fun()
563 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:562:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
560 | delegateQueue.async { [weak self] in
561 | guard self != nil else { return }
562 | fun()
| |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
563 | }
564 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:670:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
668 | guard let self = self else { return }
669 | self.delegateQueue.async {
670 | guard self.connState == .connected else {
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
671 | self.aliveTimer = nil
672 | return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:392:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
390 |
391 | delegateQueue.async { [weak self] in
392 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
393 | self.connState = .connecting
394 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
498 |
499 | delegateQueue.async {
500 | self.sendingMessages[msgid] = message
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
501 | }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:43: warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
498 |
499 | delegateQueue.async {
500 | self.sendingMessages[msgid] = message
| `- warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
501 | }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5Message.swift:12:14: note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTT5Message: NSObject {
| `- note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
13 |
14 | public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:506:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
504 | guard deliver.add(frame) else {
505 | delegateQueue.async {
506 | self.sendingMessages.removeValue(forKey: msgid)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
507 | }
508 | return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:612:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
610 | func __delegate_queue(_ fun: @escaping () -> Void) {
611 | delegateQueue.async { [weak self] in
612 | guard self != nil else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
613 | fun()
614 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:613:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
611 | delegateQueue.async { [weak self] in
612 | guard self != nil else { return }
613 | fun()
| |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
614 | }
615 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:734:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
732 | guard let self = self else { return }
733 | self.delegateQueue.async {
734 | guard self.connState == .connected else {
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
735 | self.aliveTimer = nil
736 | return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:90:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
88 |
89 | deliverQueue.async { [weak self] in
90 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
91 | self.tryTransport()
92 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:111:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
109 |
110 | deliverQueue.async { [weak self] in
111 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
112 | self.tryTransport()
113 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:136:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
134 |
135 | deliverQueue.async { [weak self] in
136 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
137 | let acked = self.ackInflightFrame(withMsgid: msgid, type: ackType)
138 | if acked.count == 0 {
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:197:25: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
195 | guard let self = self else { return }
196 | self.deliverQueue.async {
197 | self.redeliver()
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
198 | }
199 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:13: warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
10 | import Dispatch
11 |
12 | protocol CocoaMQTTDeliverProtocol: AnyObject {
| `- note: protocol 'CocoaMQTTDeliverProtocol' does not conform to the 'Sendable' protocol
13 |
14 | var delegateQueue: DispatchQueue { get set }
:
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:48: warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/Frame.swift:81:10: note: protocol 'Frame' does not conform to the 'Sendable' protocol
79 |
80 | /// MQTT Frame protocol
81 | protocol Frame {
| `- note: protocol 'Frame' does not conform to the 'Sendable' protocol
82 |
83 | /// Each MQTT Control Packet contains a fixed header
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift:41:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 | public nonisolated(unsafe) static var logger = CocoaMQTTLogger()
40 | #else
41 | public static var logger = CocoaMQTTLogger()
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | #endif
43 | public override init() { super.init() }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:391:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
389 |
390 | delegateQueue.async { [weak self] in
391 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
392 | self.connState = .connecting
393 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
471 |
472 | delegateQueue.async {
473 | self.sendingMessages[msgid] = message
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
474 | }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:43: warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
471 |
472 | delegateQueue.async {
473 | self.sendingMessages[msgid] = message
| `- warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
474 | }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTMessage.swift:12:14: note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTTMessage: NSObject {
| `- note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
13 |
14 | public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:479:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
477 | guard deliver.add(frame) else {
478 | delegateQueue.async {
479 | self.sendingMessages.removeValue(forKey: msgid)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
480 | }
481 | return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:561:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
559 | func __delegate_queue(_ fun: @escaping () -> Void) {
560 | delegateQueue.async { [weak self] in
561 | guard self != nil else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
562 | fun()
563 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:562:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
560 | delegateQueue.async { [weak self] in
561 | guard self != nil else { return }
562 | fun()
| |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
563 | }
564 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:670:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
668 | guard let self = self else { return }
669 | self.delegateQueue.async {
670 | guard self.connState == .connected else {
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
671 | self.aliveTimer = nil
672 | return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:392:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
390 |
391 | delegateQueue.async { [weak self] in
392 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
393 | self.connState = .connecting
394 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
498 |
499 | delegateQueue.async {
500 | self.sendingMessages[msgid] = message
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
501 | }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:43: warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
498 |
499 | delegateQueue.async {
500 | self.sendingMessages[msgid] = message
| `- warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
501 | }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5Message.swift:12:14: note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTT5Message: NSObject {
| `- note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
13 |
14 | public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:506:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
504 | guard deliver.add(frame) else {
505 | delegateQueue.async {
506 | self.sendingMessages.removeValue(forKey: msgid)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
507 | }
508 | return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:612:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
610 | func __delegate_queue(_ fun: @escaping () -> Void) {
611 | delegateQueue.async { [weak self] in
612 | guard self != nil else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
613 | fun()
614 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:613:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
611 | delegateQueue.async { [weak self] in
612 | guard self != nil else { return }
613 | fun()
| |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
614 | }
615 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:734:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
732 | guard let self = self else { return }
733 | self.delegateQueue.async {
734 | guard self.connState == .connected else {
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
735 | self.aliveTimer = nil
736 | return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:90:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
88 |
89 | deliverQueue.async { [weak self] in
90 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
91 | self.tryTransport()
92 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:111:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
109 |
110 | deliverQueue.async { [weak self] in
111 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
112 | self.tryTransport()
113 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:136:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
134 |
135 | deliverQueue.async { [weak self] in
136 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
137 | let acked = self.ackInflightFrame(withMsgid: msgid, type: ackType)
138 | if acked.count == 0 {
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:197:25: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
195 | guard let self = self else { return }
196 | self.deliverQueue.async {
197 | self.redeliver()
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
198 | }
199 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:13: warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
10 | import Dispatch
11 |
12 | protocol CocoaMQTTDeliverProtocol: AnyObject {
| `- note: protocol 'CocoaMQTTDeliverProtocol' does not conform to the 'Sendable' protocol
13 |
14 | var delegateQueue: DispatchQueue { get set }
:
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:48: warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/Frame.swift:81:10: note: protocol 'Frame' does not conform to the 'Sendable' protocol
79 |
80 | /// MQTT Frame protocol
81 | protocol Frame {
| `- note: protocol 'Frame' does not conform to the 'Sendable' protocol
82 |
83 | /// Each MQTT Control Packet contains a fixed header
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift:41:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 | public nonisolated(unsafe) static var logger = CocoaMQTTLogger()
40 | #else
41 | public static var logger = CocoaMQTTLogger()
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | #endif
43 | public override init() { super.init() }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:391:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
389 |
390 | delegateQueue.async { [weak self] in
391 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
392 | self.connState = .connecting
393 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
471 |
472 | delegateQueue.async {
473 | self.sendingMessages[msgid] = message
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
474 | }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:43: warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
471 |
472 | delegateQueue.async {
473 | self.sendingMessages[msgid] = message
| `- warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
474 | }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTMessage.swift:12:14: note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTTMessage: NSObject {
| `- note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
13 |
14 | public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:479:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
477 | guard deliver.add(frame) else {
478 | delegateQueue.async {
479 | self.sendingMessages.removeValue(forKey: msgid)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
480 | }
481 | return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:561:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
559 | func __delegate_queue(_ fun: @escaping () -> Void) {
560 | delegateQueue.async { [weak self] in
561 | guard self != nil else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
562 | fun()
563 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:562:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
560 | delegateQueue.async { [weak self] in
561 | guard self != nil else { return }
562 | fun()
| |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
563 | }
564 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:670:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
668 | guard let self = self else { return }
669 | self.delegateQueue.async {
670 | guard self.connState == .connected else {
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
671 | self.aliveTimer = nil
672 | return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:392:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
390 |
391 | delegateQueue.async { [weak self] in
392 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
393 | self.connState = .connecting
394 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
498 |
499 | delegateQueue.async {
500 | self.sendingMessages[msgid] = message
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
501 | }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:43: warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
498 |
499 | delegateQueue.async {
500 | self.sendingMessages[msgid] = message
| `- warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
501 | }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5Message.swift:12:14: note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTT5Message: NSObject {
| `- note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
13 |
14 | public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:506:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
504 | guard deliver.add(frame) else {
505 | delegateQueue.async {
506 | self.sendingMessages.removeValue(forKey: msgid)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
507 | }
508 | return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:612:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
610 | func __delegate_queue(_ fun: @escaping () -> Void) {
611 | delegateQueue.async { [weak self] in
612 | guard self != nil else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
613 | fun()
614 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:613:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
611 | delegateQueue.async { [weak self] in
612 | guard self != nil else { return }
613 | fun()
| |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
614 | }
615 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:734:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
732 | guard let self = self else { return }
733 | self.delegateQueue.async {
734 | guard self.connState == .connected else {
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
735 | self.aliveTimer = nil
736 | return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:90:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
88 |
89 | deliverQueue.async { [weak self] in
90 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
91 | self.tryTransport()
92 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:111:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
109 |
110 | deliverQueue.async { [weak self] in
111 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
112 | self.tryTransport()
113 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:136:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
134 |
135 | deliverQueue.async { [weak self] in
136 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
137 | let acked = self.ackInflightFrame(withMsgid: msgid, type: ackType)
138 | if acked.count == 0 {
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:197:25: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
195 | guard let self = self else { return }
196 | self.deliverQueue.async {
197 | self.redeliver()
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
198 | }
199 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:13: warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
10 | import Dispatch
11 |
12 | protocol CocoaMQTTDeliverProtocol: AnyObject {
| `- note: protocol 'CocoaMQTTDeliverProtocol' does not conform to the 'Sendable' protocol
13 |
14 | var delegateQueue: DispatchQueue { get set }
:
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:48: warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/Frame.swift:81:10: note: protocol 'Frame' does not conform to the 'Sendable' protocol
79 |
80 | /// MQTT Frame protocol
81 | protocol Frame {
| `- note: protocol 'Frame' does not conform to the 'Sendable' protocol
82 |
83 | /// Each MQTT Control Packet contains a fixed header
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift:41:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 | public nonisolated(unsafe) static var logger = CocoaMQTTLogger()
40 | #else
41 | public static var logger = CocoaMQTTLogger()
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | #endif
43 | public override init() { super.init() }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:391:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
389 |
390 | delegateQueue.async { [weak self] in
391 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
392 | self.connState = .connecting
393 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
471 |
472 | delegateQueue.async {
473 | self.sendingMessages[msgid] = message
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
474 | }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:473:43: warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
471 |
472 | delegateQueue.async {
473 | self.sendingMessages[msgid] = message
| `- warning: capture of 'message' with non-sendable type 'CocoaMQTTMessage' in a '@Sendable' closure
474 | }
475 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTMessage.swift:12:14: note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTTMessage: NSObject {
| `- note: class 'CocoaMQTTMessage' does not conform to the 'Sendable' protocol
13 |
14 | public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:479:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
477 | guard deliver.add(frame) else {
478 | delegateQueue.async {
479 | self.sendingMessages.removeValue(forKey: msgid)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
480 | }
481 | return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:561:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
559 | func __delegate_queue(_ fun: @escaping () -> Void) {
560 | delegateQueue.async { [weak self] in
561 | guard self != nil else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT?' in a '@Sendable' closure
562 | fun()
563 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:562:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
560 | delegateQueue.async { [weak self] in
561 | guard self != nil else { return }
562 | fun()
| |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
563 | }
564 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift:670:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
139 | ///
140 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
141 | public class CocoaMQTT: NSObject, CocoaMQTTClient {
| `- note: class 'CocoaMQTT' does not conform to the 'Sendable' protocol
142 |
143 | public weak var delegate: CocoaMQTTDelegate?
:
668 | guard let self = self else { return }
669 | self.delegateQueue.async {
670 | guard self.connState == .connected else {
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT' in a '@Sendable' closure
671 | self.aliveTimer = nil
672 | return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:392:34: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
390 |
391 | delegateQueue.async { [weak self] in
392 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
393 | self.connState = .connecting
394 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:13: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
498 |
499 | delegateQueue.async {
500 | self.sendingMessages[msgid] = message
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
501 | }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:500:43: warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
498 |
499 | delegateQueue.async {
500 | self.sendingMessages[msgid] = message
| `- warning: capture of 'message' with non-sendable type 'CocoaMQTT5Message' in a '@Sendable' closure
501 | }
502 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5Message.swift:12:14: note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
10 |
11 | /// MQTT Message
12 | public class CocoaMQTT5Message: NSObject {
| `- note: class 'CocoaMQTT5Message' does not conform to the 'Sendable' protocol
13 |
14 | public var qos = CocoaMQTTQoS.qos1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:506:17: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
504 | guard deliver.add(frame) else {
505 | delegateQueue.async {
506 | self.sendingMessages.removeValue(forKey: msgid)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
507 | }
508 | return -1
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:612:19: warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
610 | func __delegate_queue(_ fun: @escaping () -> Void) {
611 | delegateQueue.async { [weak self] in
612 | guard self != nil else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5?' in a '@Sendable' closure
613 | fun()
614 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:613:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
611 | delegateQueue.async { [weak self] in
612 | guard self != nil else { return }
613 | fun()
| |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
614 | }
615 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift:734:27: warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
133 | ///
134 | /// - Note: MGCDAsyncSocket need delegate to extend NSObject
135 | public class CocoaMQTT5: NSObject, CocoaMQTT5Client {
| `- note: class 'CocoaMQTT5' does not conform to the 'Sendable' protocol
136 |
137 | public weak var delegate: CocoaMQTT5Delegate?
:
732 | guard let self = self else { return }
733 | self.delegateQueue.async {
734 | guard self.connState == .connected else {
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTT5' in a '@Sendable' closure
735 | self.aliveTimer = nil
736 | return
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:90:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
88 |
89 | deliverQueue.async { [weak self] in
90 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
91 | self.tryTransport()
92 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:111:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
109 |
110 | deliverQueue.async { [weak self] in
111 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
112 | self.tryTransport()
113 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:136:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
134 |
135 | deliverQueue.async { [weak self] in
136 | guard let self = self else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver?' in a '@Sendable' closure
137 | let acked = self.ackInflightFrame(withMsgid: msgid, type: ackType)
138 | if acked.count == 0 {
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:197:25: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
195 | guard let self = self else { return }
196 | self.deliverQueue.async {
197 | self.redeliver()
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
198 | }
199 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:13: warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
10 | import Dispatch
11 |
12 | protocol CocoaMQTTDeliverProtocol: AnyObject {
| `- note: protocol 'CocoaMQTTDeliverProtocol' does not conform to the 'Sendable' protocol
13 |
14 | var delegateQueue: DispatchQueue { get set }
:
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTDeliverProtocol' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:30: warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
42 |
43 | // CocoaMQTTDeliver
44 | class CocoaMQTTDeliver: NSObject {
| `- note: class 'CocoaMQTTDeliver' does not conform to the 'Sendable' protocol
45 |
46 | /// The dispatch queue is used by delivering frames in serially
:
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTDeliver' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift:305:48: warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
303 |
304 | delegate.delegateQueue.async {
305 | delegate.deliver(self, wantToSend: frame)
| `- warning: capture of 'frame' with non-sendable type 'any Frame' in a '@Sendable' closure
306 | }
307 | }
/Users/admin/builder/spi-builder-workspace/Source/Frame.swift:81:10: note: protocol 'Frame' does not conform to the 'Sendable' protocol
79 |
80 | /// MQTT Frame protocol
81 | protocol Frame {
| `- note: protocol 'Frame' does not conform to the 'Sendable' protocol
82 |
83 | /// Each MQTT Control Packet contains a fixed header
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift:41:23: warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
39 | public nonisolated(unsafe) static var logger = CocoaMQTTLogger()
40 | #else
41 | public static var logger = CocoaMQTTLogger()
| |- warning: static property 'logger' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'logger' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'logger' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | #endif
43 | public override init() { super.init() }
[76/77] Compiling CocoaMQTTWebSocket CocoaMQTTWebSocket.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:311:11: warning: non-final class 'FoundationConnection' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
309 | @available(OSX 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
310 | public extension CocoaMQTTWebSocket {
311 | class FoundationConnection: NSObject, CocoaMQTTWebSocketConnection {
| `- warning: non-final class 'FoundationConnection' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
312 |
313 | public weak var delegate: CocoaMQTTWebSocketConnectionDelegate?
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:313:25: warning: stored property 'delegate' of 'Sendable'-conforming class 'FoundationConnection' is mutable; this is an error in the Swift 6 language mode
311 | class FoundationConnection: NSObject, CocoaMQTTWebSocketConnection {
312 |
313 | public weak var delegate: CocoaMQTTWebSocketConnectionDelegate?
| `- warning: stored property 'delegate' of 'Sendable'-conforming class 'FoundationConnection' is mutable; this is an error in the Swift 6 language mode
314 | public lazy var queue = DispatchQueue(label: "CocoaMQTTFoundationWebSocketConnection-\(self.hashValue)")
315 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:81:13: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
50 | // MARK: - CocoaMQTTWebSocket
51 |
52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
| `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
53 |
54 | public var enableSSL = false
:
79 | public func setDelegate(_ theDelegate: CocoaMQTTSocketDelegate?, delegateQueue: DispatchQueue?) {
80 | internalQueue.async {
81 | self.delegate = theDelegate
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
82 | self.delegateQueue = delegateQueue
83 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:81:29: warning: capture of 'theDelegate' with non-sendable type '(any CocoaMQTTSocketDelegate)?' in a '@Sendable' closure
79 | public func setDelegate(_ theDelegate: CocoaMQTTSocketDelegate?, delegateQueue: DispatchQueue?) {
80 | internalQueue.async {
81 | self.delegate = theDelegate
| `- warning: capture of 'theDelegate' with non-sendable type '(any CocoaMQTTSocketDelegate)?' in a '@Sendable' closure
82 | self.delegateQueue = delegateQueue
83 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTSocket.swift:13:17: note: protocol 'CocoaMQTTSocketDelegate' does not conform to the 'Sendable' protocol
11 | // MARK: - Interfaces
12 |
13 | public protocol CocoaMQTTSocketDelegate: AnyObject {
| `- note: protocol 'CocoaMQTTSocketDelegate' does not conform to the 'Sendable' protocol
14 | func socketConnected(_ socket: CocoaMQTTSocketProtocol)
15 | func socket(_ socket: CocoaMQTTSocketProtocol, didReceive trust: SecTrust, completionHandler: @escaping (Bool) -> Swift.Void)
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:11:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CocoaMQTT'
9 | import Starscream
10 | #if IS_SWIFT_PACKAGE
11 | import CocoaMQTT
| `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'CocoaMQTT'
12 | #endif
13 |
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:121:13: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
50 | // MARK: - CocoaMQTTWebSocket
51 |
52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
| `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
53 |
54 | public var enableSSL = false
:
119 | internalQueue.async {
120 | // self.reset()
121 | self.closeConnection(withError: nil)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
122 | }
123 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:128:13: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
50 | // MARK: - CocoaMQTTWebSocket
51 |
52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
| `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
53 |
54 | public var enableSSL = false
:
126 | internalQueue.async {
127 | let newRead = ReadItem(tag: tag, length: length, timeout: (timeout > 0.0) ? .now() + timeout : .distantFuture)
128 | self.scheduledReads.append(newRead)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
129 | self.checkScheduledReads()
130 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:136:13: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
50 | // MARK: - CocoaMQTTWebSocket
51 |
52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
| `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
53 |
54 | public var enableSSL = false
:
134 | internalQueue.async {
135 | let newWrite = WriteItem(tag: tag, timeout: (timeout > 0.0) ? .now() + timeout : .distantFuture)
136 | self.scheduledWrites.insert(newWrite)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
137 | self.checkScheduledWrites()
138 | self.connection?.write(data: data) { possibleError in
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:140:21: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in an isolated closure; this is an error in the Swift 6 language mode
50 | // MARK: - CocoaMQTTWebSocket
51 |
52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
| `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
53 |
54 | public var enableSSL = false
:
138 | self.connection?.write(data: data) { possibleError in
139 | if let error = possibleError {
140 | self.closeConnection(withError: error)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in an isolated closure; this is an error in the Swift 6 language mode
141 | } else {
142 | guard self.scheduledWrites.remove(newWrite) != nil else { return }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:222:17: warning: capture of 'theDelegate' with non-sendable type 'any CocoaMQTTSocketDelegate' in a '@Sendable' closure
220 | readBuffer.removeSubrange(readRange)
221 | delegateQueue.async {
222 | theDelegate.socket(self, didRead: readData, withTag: nextRead.tag)
| `- warning: capture of 'theDelegate' with non-sendable type 'any CocoaMQTTSocketDelegate' in a '@Sendable' closure
223 | }
224 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTSocket.swift:13:17: note: protocol 'CocoaMQTTSocketDelegate' does not conform to the 'Sendable' protocol
11 | // MARK: - Interfaces
12 |
13 | public protocol CocoaMQTTSocketDelegate: AnyObject {
| `- note: protocol 'CocoaMQTTSocketDelegate' does not conform to the 'Sendable' protocol
14 | func socketConnected(_ socket: CocoaMQTTSocketProtocol)
15 | func socket(_ socket: CocoaMQTTSocketProtocol, didReceive trust: SecTrust, completionHandler: @escaping (Bool) -> Swift.Void)
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:222:36: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
50 | // MARK: - CocoaMQTTWebSocket
51 |
52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
| `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
53 |
54 | public var enableSSL = false
:
220 | readBuffer.removeSubrange(readRange)
221 | delegateQueue.async {
222 | theDelegate.socket(self, didRead: readData, withTag: nextRead.tag)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
223 | }
224 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:286:13: warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTSocketDelegate' in a '@Sendable' closure
284 | guard let delegateQueue = delegateQueue else { return }
285 | delegateQueue.async {
286 | delegate.socketConnected(self)
| `- warning: capture of 'delegate' with non-sendable type 'any CocoaMQTTSocketDelegate' in a '@Sendable' closure
287 | }
288 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTSocket.swift:13:17: note: protocol 'CocoaMQTTSocketDelegate' does not conform to the 'Sendable' protocol
11 | // MARK: - Interfaces
12 |
13 | public protocol CocoaMQTTSocketDelegate: AnyObject {
| `- note: protocol 'CocoaMQTTSocketDelegate' does not conform to the 'Sendable' protocol
14 | func socketConnected(_ socket: CocoaMQTTSocketProtocol)
15 | func socket(_ socket: CocoaMQTTSocketProtocol, didReceive trust: SecTrust, completionHandler: @escaping (Bool) -> Swift.Void)
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:286:38: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
50 | // MARK: - CocoaMQTTWebSocket
51 |
52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
| `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
53 |
54 | public var enableSSL = false
:
284 | guard let delegateQueue = delegateQueue else { return }
285 | delegateQueue.async {
286 | delegate.socketConnected(self)
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket' in a '@Sendable' closure
287 | }
288 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:341:21: warning: capture of 'handler' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
339 | task?.send(.data(data)) { possibleError in
340 | self.queue.async {
341 | handler(possibleError)
| |- warning: capture of 'handler' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
342 | }
343 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:341:21: warning: capture of 'handler' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
339 | task?.send(.data(data)) { possibleError in
340 | self.queue.async {
341 | handler(possibleError)
| |- warning: capture of 'handler' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
342 | }
343 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:378:21: warning: capture of 'completionHandler' with non-sendable type '(URLSession.AuthChallengeDisposition, URLCredential?) -> Void' in a '@Sendable' closure
376 | if let trust = challenge.protectionSpace.serverTrust, let delegate = self.delegate {
377 | delegate.connection(self, didReceive: trust) { shouldTrust in
378 | completionHandler(shouldTrust ? .performDefaultHandling : .rejectProtectionSpace, nil)
| |- warning: capture of 'completionHandler' with non-sendable type '(URLSession.AuthChallengeDisposition, URLCredential?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
379 | }
380 | delegate.urlSessionConnection(self, didReceiveTrust: trust, didReceiveChallenge: challenge, completionHandler: completionHandler)
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:378:21: warning: capture of 'completionHandler' with non-sendable type '(URLSession.AuthChallengeDisposition, URLCredential?) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
376 | if let trust = challenge.protectionSpace.serverTrust, let delegate = self.delegate {
377 | delegate.connection(self, didReceive: trust) { shouldTrust in
378 | completionHandler(shouldTrust ? .performDefaultHandling : .rejectProtectionSpace, nil)
| |- warning: capture of 'completionHandler' with non-sendable type '(URLSession.AuthChallengeDisposition, URLCredential?) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
379 | }
380 | delegate.urlSessionConnection(self, didReceiveTrust: trust, didReceiveChallenge: challenge, completionHandler: completionHandler)
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:501:19: warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket?' in a '@Sendable' closure
50 | // MARK: - CocoaMQTTWebSocket
51 |
52 | public class CocoaMQTTWebSocket: CocoaMQTTSocketProtocol {
| `- note: class 'CocoaMQTTWebSocket' does not conform to the 'Sendable' protocol
53 |
54 | public var enableSSL = false
:
499 | func __delegate_queue(_ fun: @escaping () -> Void) {
500 | delegateQueue?.async { [weak self] in
501 | guard self != nil else { return }
| `- warning: capture of 'self' with non-sendable type 'CocoaMQTTWebSocket?' in a '@Sendable' closure
502 | fun()
503 | }
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:502:13: warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
500 | delegateQueue?.async { [weak self] in
501 | guard self != nil else { return }
502 | fun()
| |- warning: capture of 'fun' with non-sendable type '() -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
503 | }
504 | }
[77/77] Emitting module CocoaMQTTWebSocket
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:311:11: warning: non-final class 'FoundationConnection' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
309 | @available(OSX 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
310 | public extension CocoaMQTTWebSocket {
311 | class FoundationConnection: NSObject, CocoaMQTTWebSocketConnection {
| `- warning: non-final class 'FoundationConnection' cannot conform to 'Sendable'; use '@unchecked Sendable'; this is an error in the Swift 6 language mode
312 |
313 | public weak var delegate: CocoaMQTTWebSocketConnectionDelegate?
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTWebSocket.swift:313:25: warning: stored property 'delegate' of 'Sendable'-conforming class 'FoundationConnection' is mutable; this is an error in the Swift 6 language mode
311 | class FoundationConnection: NSObject, CocoaMQTTWebSocketConnection {
312 |
313 | public weak var delegate: CocoaMQTTWebSocketConnectionDelegate?
| `- warning: stored property 'delegate' of 'Sendable'-conforming class 'FoundationConnection' is mutable; this is an error in the Swift 6 language mode
314 | public lazy var queue = DispatchQueue(label: "CocoaMQTTFoundationWebSocketConnection-\(self.hashValue)")
315 |
Build complete! (16.97s)
Fetching https://github.com/SimplyDanny/SwiftLintPlugins
Fetching https://github.com/daltoniam/Starscream.git
Fetching https://github.com/leeway1208/MqttCocoaAsyncSocket
[1/3847] Fetching mqttcocoaasyncsocket
[386/4173] Fetching mqttcocoaasyncsocket, swiftlintplugins
[1058/9281] Fetching mqttcocoaasyncsocket, swiftlintplugins, starscream
Fetched https://github.com/SimplyDanny/SwiftLintPlugins from cache (1.09s)
[5891/8955] Fetching mqttcocoaasyncsocket, starscream
Fetched https://github.com/daltoniam/Starscream.git from cache (1.29s)
Fetched https://github.com/leeway1208/MqttCocoaAsyncSocket from cache (1.29s)
Computing version for https://github.com/SimplyDanny/SwiftLintPlugins
Computed https://github.com/SimplyDanny/SwiftLintPlugins at 0.63.2 (1.76s)
Computing version for https://github.com/leeway1208/MqttCocoaAsyncSocket
Computed https://github.com/leeway1208/MqttCocoaAsyncSocket at 1.0.8 (0.59s)
Computing version for https://github.com/daltoniam/Starscream.git
Computed https://github.com/daltoniam/Starscream.git at 4.0.8 (0.55s)
Creating working copy for https://github.com/leeway1208/MqttCocoaAsyncSocket
Working copy of https://github.com/leeway1208/MqttCocoaAsyncSocket resolved at 1.0.8
Creating working copy for https://github.com/SimplyDanny/SwiftLintPlugins
Working copy of https://github.com/SimplyDanny/SwiftLintPlugins resolved at 0.63.2
Creating working copy for https://github.com/daltoniam/Starscream.git
Working copy of https://github.com/daltoniam/Starscream.git resolved at 4.0.8
Downloading binary artifact https://github.com/realm/SwiftLint/releases/download/0.63.2/SwiftLintBinary.artifactbundle.zip
[16375/72588246] Downloading https://github.com/realm/SwiftLint/releases/download/0.63.2/SwiftLintBinary.artifactbundle.zip
Downloaded https://github.com/realm/SwiftLint/releases/download/0.63.2/SwiftLintBinary.artifactbundle.zip (3.95s)
warning: 'spi-builder-workspace': found 2 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/admin/builder/spi-builder-workspace/Source/Info.plist
/Users/admin/builder/spi-builder-workspace/Source/PrivacyInfo.xcprivacy
warning: 'spi-builder-workspace': found 45 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/admin/builder/spi-builder-workspace/Source/ThreadSafeDictionary.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTStorage.swift
/Users/admin/builder/spi-builder-workspace/Source/FrameAuth.swift
/Users/admin/builder/spi-builder-workspace/Source/MqttDecodePubRec.swift
/Users/admin/builder/spi-builder-workspace/Source/MqttDecodeConnAck.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTReasonCode.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTMessage.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTSocket.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTProperty.swift
/Users/admin/builder/spi-builder-workspace/Source/FrameConnect.swift
/Users/admin/builder/spi-builder-workspace/Source/FramePubAck.swift
/Users/admin/builder/spi-builder-workspace/Source/FramePublish.swift
/Users/admin/builder/spi-builder-workspace/Source/FramePubComp.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5Message.swift
/Users/admin/builder/spi-builder-workspace/Source/FrameUnsubAck.swift
/Users/admin/builder/spi-builder-workspace/Source/FrameUnsubscribe.swift
/Users/admin/builder/spi-builder-workspace/Source/MqttDecodePubComp.swift
/Users/admin/builder/spi-builder-workspace/Source/MqttDecodePublish.swift
/Users/admin/builder/spi-builder-workspace/Source/MqttSubscription.swift
/Users/admin/builder/spi-builder-workspace/Source/FramePubRel.swift
/Users/admin/builder/spi-builder-workspace/Source/utilities/ConcurrentAtomic.swift
/Users/admin/builder/spi-builder-workspace/Source/FramePubRec.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTTimer.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTReader.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTTypes.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT.swift
/Users/admin/builder/spi-builder-workspace/Source/FrameSubAck.swift
/Users/admin/builder/spi-builder-workspace/Source/FrameDisconnect.swift
/Users/admin/builder/spi-builder-workspace/Source/MqttConnectProperties.swift
/Users/admin/builder/spi-builder-workspace/Source/MqttDecodePubAck.swift
/Users/admin/builder/spi-builder-workspace/Source/MqttDecodeSubAck.swift
/Users/admin/builder/spi-builder-workspace/Source/MqttAuthProperties.swift
/Users/admin/builder/spi-builder-workspace/Source/Frame.swift
/Users/admin/builder/spi-builder-workspace/Source/MqttDecodePubRel.swift
/Users/admin/builder/spi-builder-workspace/Source/MqttPublishProperties.swift
/Users/admin/builder/spi-builder-workspace/Source/FramePingResp.swift
/Users/admin/builder/spi-builder-workspace/Source/FrameSubscribe.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTDeliver.swift
/Users/admin/builder/spi-builder-workspace/Source/Info.plist
/Users/admin/builder/spi-builder-workspace/Source/PrivacyInfo.xcprivacy
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTTLogger.swift
/Users/admin/builder/spi-builder-workspace/Source/FramePingReq.swift
/Users/admin/builder/spi-builder-workspace/Source/FrameConnAck.swift
/Users/admin/builder/spi-builder-workspace/Source/CocoaMQTT5.swift
/Users/admin/builder/spi-builder-workspace/Source/MqttDecodeUnsubAck.swift
warning: 'starscream': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/admin/builder/spi-builder-workspace/.build/checkouts/Starscream/Sources/Info.plist
Build complete.
{
"dependencies" : [
{
"identity" : "starscream",
"requirement" : {
"range" : [
{
"lower_bound" : "4.0.8",
"upper_bound" : "6.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/daltoniam/Starscream.git"
},
{
"identity" : "mqttcocoaasyncsocket",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.8",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/leeway1208/MqttCocoaAsyncSocket"
},
{
"identity" : "swiftlintplugins",
"requirement" : {
"range" : [
{
"lower_bound" : "0.63.2",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/SimplyDanny/SwiftLintPlugins"
}
],
"manifest_display_name" : "CocoaMQTT",
"name" : "CocoaMQTT",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.13"
},
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "12.0"
}
],
"products" : [
{
"name" : "CocoaMQTT",
"targets" : [
"CocoaMQTT"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "CocoaMQTTWebSocket",
"targets" : [
"CocoaMQTTWebSocket"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "CocoaMQTTWebSocket",
"module_type" : "SwiftTarget",
"name" : "CocoaMQTTWebSocket",
"path" : "Source",
"product_dependencies" : [
"Starscream"
],
"product_memberships" : [
"CocoaMQTTWebSocket"
],
"sources" : [
"CocoaMQTTWebSocket.swift"
],
"target_dependencies" : [
"CocoaMQTT"
],
"type" : "library"
},
{
"c99name" : "CocoaMQTTTests",
"module_type" : "SwiftTarget",
"name" : "CocoaMQTTTests",
"path" : "CocoaMQTTTests",
"sources" : [
"CocoaMQTT5PublishValidationTests.swift",
"CocoaMQTT5ReasonCodeFallbackTests.swift",
"CocoaMQTT5ReceiveMessageContentTypeTests.swift",
"CocoaMQTTDeliverTests.swift",
"CocoaMQTTReaderProtocolErrorTests.swift",
"CocoaMQTTStorageTests.swift",
"CocoaMQTTTests.swift",
"ConcurrentAtomicTests.swift",
"FrameTests.swift",
"PublicLoggerAPITests.swift",
"ThreadSafetyRegressionTests.swift"
],
"target_dependencies" : [
"CocoaMQTT",
"CocoaMQTTWebSocket"
],
"type" : "test"
},
{
"c99name" : "CocoaMQTT",
"module_type" : "SwiftTarget",
"name" : "CocoaMQTT",
"path" : "Source",
"product_dependencies" : [
"MqttCocoaAsyncSocket"
],
"product_memberships" : [
"CocoaMQTT",
"CocoaMQTTWebSocket"
],
"sources" : [
"CocoaMQTT.swift",
"CocoaMQTT5.swift",
"CocoaMQTT5Message.swift",
"CocoaMQTTDeliver.swift",
"CocoaMQTTLogger.swift",
"CocoaMQTTMessage.swift",
"CocoaMQTTProperty.swift",
"CocoaMQTTReader.swift",
"CocoaMQTTReasonCode.swift",
"CocoaMQTTSocket.swift",
"CocoaMQTTStorage.swift",
"CocoaMQTTTimer.swift",
"CocoaMQTTTypes.swift",
"Frame.swift",
"FrameAuth.swift",
"FrameConnAck.swift",
"FrameConnect.swift",
"FrameDisconnect.swift",
"FramePingReq.swift",
"FramePingResp.swift",
"FramePubAck.swift",
"FramePubComp.swift",
"FramePubRec.swift",
"FramePubRel.swift",
"FramePublish.swift",
"FrameSubAck.swift",
"FrameSubscribe.swift",
"FrameUnsubAck.swift",
"FrameUnsubscribe.swift",
"MqttAuthProperties.swift",
"MqttConnectProperties.swift",
"MqttDecodeConnAck.swift",
"MqttDecodePubAck.swift",
"MqttDecodePubComp.swift",
"MqttDecodePubRec.swift",
"MqttDecodePubRel.swift",
"MqttDecodePublish.swift",
"MqttDecodeSubAck.swift",
"MqttDecodeUnsubAck.swift",
"MqttPublishProperties.swift",
"MqttSubscription.swift",
"ThreadSafeDictionary.swift",
"utilities/ConcurrentAtomic.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Done.