Build Information
Successful build of mqtt-nio, reference main (493ca8
), with Swift 6.1 for Android on 31 May 2025 02:48:02 UTC.
Swift 6 data race errors: 0
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -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 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/swift-server-community/mqtt-nio.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/swift-server-community/mqtt-nio
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 493ca8b End publish listener on connection close if clean session is set to true (#171)
Cloned https://github.com/swift-server-community/mqtt-nio.git
Revision (git rev-parse @):
493ca8bae5b3e93f9246a1a182a87efe25b5e6ba
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/swift-server-community/mqtt-nio.git at main
========================================
Build
========================================
Selected platform: android
Swift version: 6.1
Building package at path: $PWD
https://github.com/swift-server-community/mqtt-nio.git
https://github.com/swift-server-community/mqtt-nio.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
"dependencies" : [
{
"identity" : "swift-atomics",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-atomics.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
},
{
"identity" : "swift-nio",
"requirement" : {
"range" : [
{
"lower_bound" : "2.80.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio.git"
},
{
"identity" : "swift-nio-ssl",
"requirement" : {
"range" : [
{
"lower_bound" : "2.14.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio-ssl.git"
},
{
"identity" : "swift-nio-transport-services",
"requirement" : {
"range" : [
{
"lower_bound" : "1.20.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio-transport-services.git"
},
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-docc-plugin"
}
],
"manifest_display_name" : "mqtt-nio",
"name" : "mqtt-nio",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.14"
},
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "6.0"
}
],
"products" : [
{
"name" : "MQTTNIO",
"targets" : [
"MQTTNIO"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "MQTTNIOTests",
"module_type" : "SwiftTarget",
"name" : "MQTTNIOTests",
"path" : "Tests/MQTTNIOTests",
"sources" : [
"CoreMQTTTests.swift",
"MQTTNIOTests+async.swift",
"MQTTNIOTests.swift",
"MQTTNIOv5Tests.swift"
],
"target_dependencies" : [
"MQTTNIO"
],
"type" : "test"
},
{
"c99name" : "MQTTNIO",
"module_type" : "SwiftTarget",
"name" : "MQTTNIO",
"path" : "Sources/MQTTNIO",
"product_dependencies" : [
"Atomics",
"Logging",
"NIO",
"NIOConcurrencyHelpers",
"NIOHTTP1",
"NIOWebSocket",
"NIOSSL",
"NIOTransportServices"
],
"product_memberships" : [
"MQTTNIO"
],
"sources" : [
"AsyncAwaitSupport/MQTTClient+async.swift",
"AsyncAwaitSupport/MQTTClientV5+async.swift",
"AsyncAwaitSupport/Sendable.swift",
"ChannelHandlers/MQTTMessageDecoder.swift",
"ChannelHandlers/MQTTMessageHandler.swift",
"ChannelHandlers/MQTTTaskHandler.swift",
"ChannelHandlers/PingreqHandler.swift",
"ChannelHandlers/WebSocketHandler.swift",
"ChannelHandlers/WebSocketInitialRequest.swift",
"MQTTClient.swift",
"MQTTClientV5.swift",
"MQTTConfiguration.swift",
"MQTTConnection.swift",
"MQTTCoreTypes.swift",
"MQTTCoreTypesV5.swift",
"MQTTError.swift",
"MQTTInflight.swift",
"MQTTListeners.swift",
"MQTTPacket.swift",
"MQTTProperties.swift",
"MQTTReason.swift",
"MQTTSerializer.swift",
"MQTTTask.swift",
"TSTLSConfiguration.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -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 2>&1
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:fe1962677657b2408c217cb5cceb3c09bc1d91486e360cebbc6eee461a5945d8
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Fetching https://github.com/apple/swift-nio-transport-services.git
Fetching https://github.com/apple/swift-nio-ssl.git
Fetching https://github.com/apple/swift-atomics.git
Fetching https://github.com/apple/swift-log.git
Fetching https://github.com/apple/swift-docc-plugin
Fetching https://github.com/apple/swift-nio.git
[1/2049] Fetching swift-docc-plugin
[227/3766] Fetching swift-docc-plugin, swift-atomics
[588/7602] Fetching swift-docc-plugin, swift-atomics, swift-log
[7603/22445] Fetching swift-docc-plugin, swift-atomics, swift-log, swift-nio-ssl
[9236/98568] Fetching swift-docc-plugin, swift-atomics, swift-log, swift-nio-ssl, swift-nio
[36953/101235] Fetching swift-docc-plugin, swift-atomics, swift-log, swift-nio-ssl, swift-nio, swift-nio-transport-services
Fetched https://github.com/apple/swift-nio-transport-services.git from cache (6.87s)
Fetched https://github.com/apple/swift-log.git from cache (6.87s)
Fetched https://github.com/apple/swift-atomics.git from cache (6.88s)
Fetched https://github.com/apple/swift-docc-plugin from cache (6.88s)
Fetched https://github.com/apple/swift-nio-ssl.git from cache (6.92s)
Fetched https://github.com/apple/swift-nio.git from cache (7.01s)
Computing version for https://github.com/apple/swift-nio.git
Computed https://github.com/apple/swift-nio.git at 2.83.0 (8.13s)
Fetching https://github.com/apple/swift-collections.git
Fetching https://github.com/apple/swift-system.git
[1/4391] Fetching swift-system
[2856/20982] Fetching swift-system, swift-collections
Fetched https://github.com/apple/swift-system.git from cache (0.47s)
[4314/16591] Fetching swift-collections
Fetched https://github.com/apple/swift-collections.git from cache (1.31s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.2.0 (1.94s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.5.0 (0.64s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.2.0 (0.73s)
Computing version for https://github.com/apple/swift-nio-transport-services.git
Computed https://github.com/apple/swift-nio-transport-services.git at 1.24.0 (0.60s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.4.3 (0.75s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3392] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.47s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.40s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.6.3 (0.89s)
Computing version for https://github.com/apple/swift-nio-ssl.git
Computed https://github.com/apple/swift-nio-ssl.git at 2.31.0 (0.78s)
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.2.0
Creating working copy for https://github.com/apple/swift-nio.git
Working copy of https://github.com/apple/swift-nio.git resolved at 2.83.0
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.6.3
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.2.0
Creating working copy for https://github.com/apple/swift-system.git
Working copy of https://github.com/apple/swift-system.git resolved at 1.5.0
Creating working copy for https://github.com/apple/swift-nio-ssl.git
Working copy of https://github.com/apple/swift-nio-ssl.git resolved at 2.31.0
Creating working copy for https://github.com/apple/swift-nio-transport-services.git
Working copy of https://github.com/apple/swift-nio-transport-services.git resolved at 1.24.0
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.4.3
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/33] Write sources
[18/33] Compiling CNIOWASI CNIOWASI.c
[19/33] Compiling CNIOWindows WSAStartup.c
[20/33] Compiling _AtomicsShims.c
[21/33] Compiling CNIOWindows shim.c
[22/33] Compiling CNIOLinux liburing_shims.c
[23/33] Compiling CNIOSHA1 c_nio_sha1.c
[24/33] Compiling CNIODarwin shim.c
[25/33] Write sources
[26/33] Compiling CNIOLLHTTP c_nio_http.c
[27/33] Compiling CNIOLLHTTP c_nio_api.c
[28/33] Compiling CNIOLinux shim.c
[29/33] Write swift-version-24593BA9C3E375BF.txt
[30/33] Compiling CNIOLLHTTP c_nio_llhttp.c
[32/77] Compiling _NIODataStructures _TinyArray.swift
[33/77] Compiling _NIODataStructures PriorityQueue.swift
[34/77] Compiling Atomics AtomicBool.swift
[35/77] Compiling Atomics IntegerConformances.swift
[36/77] Compiling InternalCollectionsUtilities UnsafeBufferPointer+Extras.swift
[37/78] Compiling Atomics ManagedAtomic.swift
[38/78] Compiling Atomics ManagedAtomicLazyReference.swift
[39/80] Compiling Atomics UnsafeAtomic.swift
[40/80] Compiling Atomics UnsafeAtomicLazyReference.swift
[41/80] Emitting module _NIOBase64
[42/80] Compiling _NIOBase64 Base64.swift
[43/81] Compiling Atomics OptionalRawRepresentable.swift
[44/81] Compiling Atomics RawRepresentable.swift
[45/81] Emitting module InternalCollectionsUtilities
[46/81] Compiling Atomics AtomicMemoryOrderings.swift
[47/81] Compiling Atomics DoubleWord.swift
[50/81] Compiling Atomics AtomicValue.swift
[52/81] Compiling Atomics AtomicReference.swift
[53/81] Compiling Atomics AtomicStorage.swift
[54/81] Compiling Atomics PointerConformances.swift
[55/81] Compiling Atomics Primitives.native.swift
[56/81] Compiling Atomics Primitives.shims.swift
[57/81] Compiling Atomics AtomicInteger.swift
[58/81] Compiling Atomics AtomicOptionalWrappable.swift
[63/81] Emitting module _NIODataStructures
[64/81] Compiling _NIODataStructures Heap.swift
[65/82] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[67/83] Compiling Atomics IntegerOperations.swift
[68/83] Compiling Atomics Unmanaged extensions.swift
[72/83] Emitting module Atomics
[78/99] Compiling DequeModule _DequeBuffer.swift
[79/99] Compiling DequeModule _DequeBufferHeader.swift
[80/101] Compiling DequeModule Deque+CustomReflectable.swift
[81/101] Compiling DequeModule Deque+Descriptions.swift
[82/101] Compiling DequeModule Deque+Equatable.swift
[83/101] Compiling DequeModule Deque+ExpressibleByArrayLiteral.swift
[84/101] Compiling DequeModule _DequeSlot.swift
[85/101] Compiling DequeModule _UnsafeWrappedBuffer.swift
[86/101] Compiling DequeModule Deque+Testing.swift
[87/101] Compiling DequeModule Deque._Storage.swift
[88/101] Compiling DequeModule Deque+Extras.swift
[89/101] Compiling DequeModule Deque+Hashable.swift
[90/101] Compiling DequeModule Deque._UnsafeHandle.swift
[91/101] Compiling DequeModule Deque.swift
[91/101] Compiling c-nioatomics.c
[93/101] Compiling DequeModule Deque+Codable.swift
[94/101] Compiling DequeModule Deque+Collection.swift
[95/101] Emitting module DequeModule
[95/102] Compiling c-atomics.c
[98/108] Emitting module Logging
[99/108] Compiling Logging Locks.swift
[100/108] Compiling Logging MetadataProvider.swift
[101/108] Compiling Logging Logging.swift
[102/108] Compiling Logging LogHandler.swift
[103/108] Compiling NIOConcurrencyHelpers NIOLock.swift
[105/109] Compiling NIOConcurrencyHelpers lock.swift
[106/109] Compiling NIOConcurrencyHelpers atomics.swift
[107/109] Compiling NIOConcurrencyHelpers NIOLockedValueBox.swift
[108/109] Emitting module NIOConcurrencyHelpers
[109/109] Compiling NIOConcurrencyHelpers NIOAtomic.swift
[111/170] Compiling NIOCore MulticastChannel.swift
[112/170] Compiling NIOCore NIOAny.swift
[113/170] Compiling NIOCore NIOCloseOnErrorHandler.swift
[114/170] Compiling NIOCore NIOLoopBound.swift
[115/170] Compiling NIOCore NIOPooledRecvBufferAllocator.swift
[116/170] Compiling NIOCore NIOScheduledCallback.swift
[117/170] Compiling NIOCore NIOSendable.swift
[118/170] Compiling NIOCore RecvByteBufferAllocator.swift
[119/178] Compiling NIOCore IO.swift
[120/178] Compiling NIOCore IOData.swift
[121/178] Compiling NIOCore IPProtocol.swift
[122/178] Compiling NIOCore IntegerBitPacking.swift
[123/178] Compiling NIOCore IntegerTypes.swift
[124/178] Compiling NIOCore Interfaces.swift
[125/178] Compiling NIOCore Linux.swift
[126/178] Compiling NIOCore MarkedCircularBuffer.swift
[127/178] Compiling NIOCore EventLoopFuture+AssumeIsolated.swift
[128/178] Compiling NIOCore EventLoopFuture+Deprecated.swift
[129/178] Compiling NIOCore EventLoopFuture+WithEventLoop.swift
[130/178] Compiling NIOCore EventLoopFuture.swift
[131/178] Compiling NIOCore FileDescriptor.swift
[132/178] Compiling NIOCore FileHandle.swift
[133/178] Compiling NIOCore FileRegion.swift
[134/178] Compiling NIOCore GlobalSingletons.swift
[135/178] Compiling NIOCore CircularBuffer.swift
[136/178] Compiling NIOCore Codec.swift
[137/178] Compiling NIOCore ConvenienceOptionSupport.swift
[138/178] Compiling NIOCore DeadChannel.swift
[139/178] Compiling NIOCore DispatchQueue+WithFuture.swift
[140/178] Compiling NIOCore EventLoop+Deprecated.swift
[141/178] Compiling NIOCore EventLoop+SerialExecutor.swift
[142/178] Compiling NIOCore EventLoop.swift
[143/178] Compiling NIOCore SingleStepByteToMessageDecoder.swift
[144/178] Compiling NIOCore SocketAddresses.swift
[145/178] Compiling NIOCore SocketOptionProvider.swift
[146/178] Compiling NIOCore SystemCallHelpers.swift
[147/178] Compiling NIOCore TimeAmount+Duration.swift
[148/178] Compiling NIOCore TypeAssistedChannelHandler.swift
[149/178] Compiling NIOCore UniversalBootstrapSupport.swift
[150/178] Compiling NIOCore Utilities.swift
[151/178] Compiling NIOCore NIOThrowingAsyncSequenceProducer.swift
[152/178] Compiling NIOCore BSDSocketAPI.swift
[153/178] Compiling NIOCore ByteBuffer-aux.swift
[154/178] Compiling NIOCore ByteBuffer-binaryEncodedLengthPrefix.swift
[155/178] Compiling NIOCore ByteBuffer-conversions.swift
[156/178] Compiling NIOCore ByteBuffer-core.swift
[157/178] Compiling NIOCore ByteBuffer-hex.swift
[158/178] Compiling NIOCore ByteBuffer-int.swift
[159/178] Compiling NIOCore ByteBuffer-lengthPrefix.swift
[160/178] Compiling NIOCore ByteBuffer-multi-int.swift
[161/178] Compiling NIOCore ByteBuffer-quicBinaryEncodingStrategy.swift
[162/178] Compiling NIOCore ByteBuffer-views.swift
[163/178] Compiling NIOCore Channel.swift
[164/178] Compiling NIOCore ChannelHandler.swift
[165/178] Compiling NIOCore ChannelHandlers.swift
[166/178] Compiling NIOCore ChannelInvoker.swift
[167/178] Compiling NIOCore ChannelOption.swift
[168/178] Compiling NIOCore ChannelPipeline.swift
[169/178] Compiling NIOCore AddressedEnvelope.swift
[170/178] Compiling NIOCore AsyncAwaitSupport.swift
[171/178] Compiling NIOCore AsyncChannel.swift
[172/178] Compiling NIOCore AsyncChannelHandler.swift
[173/178] Compiling NIOCore AsyncChannelInboundStream.swift
[174/178] Compiling NIOCore AsyncChannelOutboundWriter.swift
[175/178] Compiling NIOCore NIOAsyncSequenceProducer.swift
[176/178] Compiling NIOCore NIOAsyncSequenceProducerStrategies.swift
[177/178] Compiling NIOCore NIOAsyncWriter.swift
[178/178] Emitting module NIOCore
[180/229] Compiling NIOEmbedded AsyncTestingEventLoop.swift
[181/229] Emitting module NIOEmbedded
[182/229] Compiling NIOEmbedded AsyncTestingChannel.swift
[183/229] Compiling NIOEmbedded Embedded.swift
[185/230] Compiling NIOPosix Pool.swift
[186/230] Compiling NIOPosix PosixSingletons+ConcurrencyTakeOver.swift
[187/230] Compiling NIOPosix PosixSingletons.swift
[188/230] Compiling NIOPosix RawSocketBootstrap.swift
[189/230] Compiling NIOPosix Resolver.swift
[190/230] Compiling NIOPosix Selectable.swift
[191/236] Compiling NIOPosix ServerSocket.swift
[192/236] Compiling NIOPosix Socket.swift
[193/236] Compiling NIOPosix SocketChannel.swift
[194/236] Compiling NIOPosix SocketProtocols.swift
[195/236] Compiling NIOPosix System.swift
[196/236] Compiling NIOPosix Thread.swift
[197/236] Compiling NIOPosix SelectableChannel.swift
[198/236] Compiling NIOPosix SelectableEventLoop.swift
[199/236] Compiling NIOPosix SelectorEpoll.swift
[200/236] Compiling NIOPosix SelectorGeneric.swift
[201/236] Compiling NIOPosix SelectorKqueue.swift
[202/236] Compiling NIOPosix SelectorUring.swift
[203/236] Compiling NIOPosix ThreadPosix.swift
[204/236] Compiling NIOPosix ThreadWindows.swift
[205/236] Compiling NIOPosix UnsafeTransfer.swift
[206/236] Compiling NIOPosix Utilities.swift
[207/236] Compiling NIOPosix VsockAddress.swift
[208/236] Compiling NIOPosix VsockChannelEvents.swift
[209/236] Compiling NIOPosix IO.swift
[210/236] Compiling NIOPosix IntegerBitPacking.swift
[211/236] Compiling NIOPosix IntegerTypes.swift
[212/236] Compiling NIOPosix Linux.swift
[213/236] Compiling NIOPosix LinuxCPUSet.swift
[214/236] Compiling NIOPosix LinuxUring.swift
[215/236] Compiling NIOPosix MultiThreadedEventLoopGroup.swift
[216/236] Compiling NIOPosix NIOThreadPool.swift
[217/236] Compiling NIOPosix NonBlockingFileIO.swift
[218/236] Compiling NIOPosix PendingDatagramWritesManager.swift
[219/236] Compiling NIOPosix PendingWritesManager.swift
[220/236] Compiling NIOPosix PipeChannel.swift
[221/236] Compiling NIOPosix PipePair.swift
[222/236] Compiling NIOPosix BSDSocketAPICommon.swift
[223/236] Compiling NIOPosix BSDSocketAPIPosix.swift
[224/236] Compiling NIOPosix BSDSocketAPIWindows.swift
[225/236] Compiling NIOPosix BaseSocket.swift
[226/236] Compiling NIOPosix BaseSocketChannel+SocketOptionProvider.swift
[227/236] Compiling NIOPosix BaseSocketChannel.swift
[228/236] Compiling NIOPosix BaseStreamSocketChannel.swift
[229/236] Compiling NIOPosix Bootstrap.swift
[230/236] Compiling NIOPosix ControlMessage.swift
[231/236] Compiling NIOPosix DatagramVectorReadManager.swift
[232/236] Compiling NIOPosix Errors+Any.swift
[233/236] Compiling NIOPosix FileDescriptor.swift
[234/236] Compiling NIOPosix GetaddrinfoResolver.swift
[235/236] Compiling NIOPosix HappyEyeballs.swift
[236/236] Emitting module NIOPosix
[238/239] Compiling NIO Exports.swift
[239/239] Emitting module NIO
[241/267] Compiling NIOTLS TLSEvents.swift
[242/267] Compiling NIOTLS NIOTypedApplicationProtocolNegotiationHandler.swift
[243/267] Emitting module NIOTLS
[244/267] Compiling NIOTLS ApplicationProtocolNegotiationHandler.swift
[245/267] Compiling NIOTLS ProtocolNegotiationHandlerStateMachine.swift
[246/267] Compiling NIOTLS SNIHandler.swift
[247/268] Emitting module NIOHTTP1
[249/270] Compiling NIOHTTP1 NIOHTTPClientUpgradeHandler.swift
[250/270] Compiling NIOHTTP1 NIOHTTPObjectAggregator.swift
[251/270] Compiling NIOHTTP1 NIOTypedHTTPClientUpgradeHandler.swift
[252/270] Compiling NIOHTTP1 NIOTypedHTTPClientUpgraderStateMachine.swift
[253/270] Compiling NIOHTTP1 HTTPServerProtocolErrorHandler.swift
[254/270] Compiling NIOHTTP1 HTTPServerUpgradeHandler.swift
[255/270] Compiling NIOHTTP1 HTTPTypedPipelineSetup.swift
[256/270] Compiling NIOHTTP1 HTTPTypes.swift
[257/270] Compiling NIOHTTP1 HTTPPipelineSetup.swift
[258/270] Compiling NIOHTTP1 HTTPServerPipelineHandler.swift
[259/270] Compiling NIOHTTP1 NIOTypedHTTPServerUpgradeHandler.swift
[260/270] Compiling NIOHTTP1 NIOTypedHTTPServerUpgraderStateMachine.swift
[261/270] Compiling NIOHTTP1 ByteCollectionUtils.swift
[262/270] Compiling NIOHTTP1 HTTPDecoder.swift
[263/270] Compiling NIOHTTP1 HTTPEncoder.swift
[264/270] Compiling NIOHTTP1 HTTPHeaderValidator.swift
[265/270] Compiling NIOHTTP1 HTTPHeaders+Validation.swift
[267/281] Compiling NIOFoundationCompat Codable+ByteBuffer.swift
[268/281] Compiling NIOFoundationCompat WaitSpinningRunLoop.swift
[269/281] Compiling NIOFoundationCompat JSONSerialization+ByteBuffer.swift
[270/281] Emitting module NIOFoundationCompat
[271/281] Compiling NIOFoundationCompat ByteBuffer-foundation.swift
[272/282] Compiling NIOWebSocket WebSocketErrorCodes.swift
[273/283] Compiling NIOWebSocket WebSocketOpcode.swift
[275/283] Compiling NIOWebSocket WebSocketFrameEncoder.swift
[276/283] Compiling NIOWebSocket WebSocketFrameDecoder.swift
[277/283] Compiling NIOWebSocket WebSocketFrame.swift
[278/283] Compiling NIOWebSocket WebSocketProtocolErrorHandler.swift
[279/283] Compiling NIOWebSocket NIOWebSocketClientUpgrader.swift
[280/283] Compiling NIOWebSocket NIOWebSocketFrameAggregator.swift
[281/283] Emitting module NIOWebSocket
[282/283] Compiling NIOWebSocket NIOWebSocketServerUpgrader.swift
[283/283] Compiling NIOWebSocket SHA1.swift
[285/306] Compiling NIOTransportServices AcceptHandler.swift
[286/306] Compiling NIOTransportServices NIOTSDatagramBootstrap.swift
[287/306] Compiling NIOTransportServices NIOTSDatagramChannel.swift
[288/308] Compiling NIOTransportServices StateManagedChannel.swift
[289/308] Compiling NIOTransportServices StateManagedListenerChannel.swift
[290/308] Compiling NIOTransportServices StateManagedNWConnectionChannel.swift
[291/308] Compiling NIOTransportServices NIOTSNetworkEvents.swift
[292/308] Compiling NIOTransportServices NIOTSSingletons.swift
[293/308] Compiling NIOTransportServices SocketAddress+NWEndpoint.swift
[294/308] Compiling NIOTransportServices NIOTSEventLoopGroup.swift
[295/308] Compiling NIOTransportServices NIOTSListenerBootstrap.swift
[296/308] Compiling NIOTransportServices NIOTSListenerChannel.swift
[297/308] Compiling NIOTransportServices NIOTSBootstraps.swift
[298/308] Compiling NIOTransportServices NIOTSChannelOptions.swift
[299/308] Compiling NIOTransportServices NIOTSConnectionBootstrap.swift
[300/308] Emitting module NIOTransportServices
[301/308] Compiling NIOTransportServices NIOTSDatagramListener.swift
[302/308] Compiling NIOTransportServices NIOTSDatagramListenerChannel.swift
[303/308] Compiling NIOTransportServices NIOFilterEmptyWritesHandler.swift
[304/308] Compiling NIOTransportServices NIOTSConnectionChannel.swift
[305/308] Compiling NIOTransportServices NIOTSErrors.swift
[306/308] Compiling NIOTransportServices NIOTSEventLoop.swift
[307/308] Compiling NIOTransportServices TCPOptions+SocketChannelOption.swift
[308/308] Compiling NIOTransportServices UDPOptions+SocketChannelOption.swift
[310/331] Emitting module MQTTNIO
[311/334] Compiling MQTTNIO MQTTMessageDecoder.swift
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTMessageHandler.swift:134:33: warning: capture of 'self' with non-sendable type 'MQTTMessageHandler' in a '@Sendable' closure
15 | import NIO
16 |
17 | class MQTTMessageHandler: ChannelDuplexHandler {
| `- note: class 'MQTTMessageHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = ByteBuffer
19 | typealias InboundOut = MQTTPacket
:
132 | connection.sendMessageNoWait(MQTTPubAckPacket(type: .PUBACK, packetId: message.packetId))
133 | .map { _ in message.publish }
134 | .whenComplete { self.client.publishListeners.notify($0) }
| `- warning: capture of 'self' with non-sendable type 'MQTTMessageHandler' in a '@Sendable' closure
135 |
136 | case .exactlyOnce:
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTMessageHandler.swift:150:25: warning: reference to captured var 'publish' in concurrently-executing code
148 | return true
149 | }
150 | .map { _ in publish }
| `- warning: reference to captured var 'publish' in concurrently-executing code
151 | .whenComplete { result in
152 | // do not report retrySend error
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTMessageHandler.swift:156:17: warning: capture of 'self' with non-sendable type 'MQTTMessageHandler' in a '@Sendable' closure
15 | import NIO
16 |
17 | class MQTTMessageHandler: ChannelDuplexHandler {
| `- note: class 'MQTTMessageHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = ByteBuffer
19 | typealias InboundOut = MQTTPacket
:
154 | return
155 | }
156 | self.client.publishListeners.notify(result)
| `- warning: capture of 'self' with non-sendable type 'MQTTMessageHandler' in a '@Sendable' closure
157 | }
158 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:35:17: warning: capture of 'self' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
15 |
16 | /// Task handler.
17 | final class MQTTTaskHandler: ChannelInboundHandler, RemovableChannelHandler {
| `- note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = MQTTPacket
19 |
:
33 | } else {
34 | return self.eventLoop.submit {
35 | self.tasks.append(task)
| `- warning: capture of 'self' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
36 | }
37 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:35:35: warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
33 | } else {
34 | return self.eventLoop.submit {
35 | self.tasks.append(task)
| `- warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
36 | }
37 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTTask.swift:17:13: note: class 'MQTTTask' does not conform to the 'Sendable' protocol
15 |
16 | /// Class encapsulating a single task
17 | final class MQTTTask {
| `- note: class 'MQTTTask' does not conform to the 'Sendable' protocol
18 | let promise: EventLoopPromise<MQTTPacket>
19 | let checkInbound: (MQTTPacket) throws -> Bool
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:53:17: warning: capture of 'self' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
15 |
16 | /// Task handler.
17 | final class MQTTTaskHandler: ChannelInboundHandler, RemovableChannelHandler {
| `- note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = MQTTPacket
19 |
:
51 | } else {
52 | self.eventLoop.execute {
53 | self._removeTask(task)
| `- warning: capture of 'self' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
54 | }
55 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:53:34: warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
51 | } else {
52 | self.eventLoop.execute {
53 | self._removeTask(task)
| `- warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
54 | }
55 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTTask.swift:17:13: note: class 'MQTTTask' does not conform to the 'Sendable' protocol
15 |
16 | /// Class encapsulating a single task
17 | final class MQTTTask {
| `- note: class 'MQTTTask' does not conform to the 'Sendable' protocol
18 | let promise: EventLoopPromise<MQTTPacket>
19 | let checkInbound: (MQTTPacket) throws -> Bool
[312/334] Compiling MQTTNIO MQTTMessageHandler.swift
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTMessageHandler.swift:134:33: warning: capture of 'self' with non-sendable type 'MQTTMessageHandler' in a '@Sendable' closure
15 | import NIO
16 |
17 | class MQTTMessageHandler: ChannelDuplexHandler {
| `- note: class 'MQTTMessageHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = ByteBuffer
19 | typealias InboundOut = MQTTPacket
:
132 | connection.sendMessageNoWait(MQTTPubAckPacket(type: .PUBACK, packetId: message.packetId))
133 | .map { _ in message.publish }
134 | .whenComplete { self.client.publishListeners.notify($0) }
| `- warning: capture of 'self' with non-sendable type 'MQTTMessageHandler' in a '@Sendable' closure
135 |
136 | case .exactlyOnce:
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTMessageHandler.swift:150:25: warning: reference to captured var 'publish' in concurrently-executing code
148 | return true
149 | }
150 | .map { _ in publish }
| `- warning: reference to captured var 'publish' in concurrently-executing code
151 | .whenComplete { result in
152 | // do not report retrySend error
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTMessageHandler.swift:156:17: warning: capture of 'self' with non-sendable type 'MQTTMessageHandler' in a '@Sendable' closure
15 | import NIO
16 |
17 | class MQTTMessageHandler: ChannelDuplexHandler {
| `- note: class 'MQTTMessageHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = ByteBuffer
19 | typealias InboundOut = MQTTPacket
:
154 | return
155 | }
156 | self.client.publishListeners.notify(result)
| `- warning: capture of 'self' with non-sendable type 'MQTTMessageHandler' in a '@Sendable' closure
157 | }
158 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:35:17: warning: capture of 'self' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
15 |
16 | /// Task handler.
17 | final class MQTTTaskHandler: ChannelInboundHandler, RemovableChannelHandler {
| `- note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = MQTTPacket
19 |
:
33 | } else {
34 | return self.eventLoop.submit {
35 | self.tasks.append(task)
| `- warning: capture of 'self' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
36 | }
37 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:35:35: warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
33 | } else {
34 | return self.eventLoop.submit {
35 | self.tasks.append(task)
| `- warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
36 | }
37 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTTask.swift:17:13: note: class 'MQTTTask' does not conform to the 'Sendable' protocol
15 |
16 | /// Class encapsulating a single task
17 | final class MQTTTask {
| `- note: class 'MQTTTask' does not conform to the 'Sendable' protocol
18 | let promise: EventLoopPromise<MQTTPacket>
19 | let checkInbound: (MQTTPacket) throws -> Bool
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:53:17: warning: capture of 'self' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
15 |
16 | /// Task handler.
17 | final class MQTTTaskHandler: ChannelInboundHandler, RemovableChannelHandler {
| `- note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = MQTTPacket
19 |
:
51 | } else {
52 | self.eventLoop.execute {
53 | self._removeTask(task)
| `- warning: capture of 'self' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
54 | }
55 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:53:34: warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
51 | } else {
52 | self.eventLoop.execute {
53 | self._removeTask(task)
| `- warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
54 | }
55 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTTask.swift:17:13: note: class 'MQTTTask' does not conform to the 'Sendable' protocol
15 |
16 | /// Class encapsulating a single task
17 | final class MQTTTask {
| `- note: class 'MQTTTask' does not conform to the 'Sendable' protocol
18 | let promise: EventLoopPromise<MQTTPacket>
19 | let checkInbound: (MQTTPacket) throws -> Bool
[313/334] Compiling MQTTNIO MQTTTaskHandler.swift
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTMessageHandler.swift:134:33: warning: capture of 'self' with non-sendable type 'MQTTMessageHandler' in a '@Sendable' closure
15 | import NIO
16 |
17 | class MQTTMessageHandler: ChannelDuplexHandler {
| `- note: class 'MQTTMessageHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = ByteBuffer
19 | typealias InboundOut = MQTTPacket
:
132 | connection.sendMessageNoWait(MQTTPubAckPacket(type: .PUBACK, packetId: message.packetId))
133 | .map { _ in message.publish }
134 | .whenComplete { self.client.publishListeners.notify($0) }
| `- warning: capture of 'self' with non-sendable type 'MQTTMessageHandler' in a '@Sendable' closure
135 |
136 | case .exactlyOnce:
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTMessageHandler.swift:150:25: warning: reference to captured var 'publish' in concurrently-executing code
148 | return true
149 | }
150 | .map { _ in publish }
| `- warning: reference to captured var 'publish' in concurrently-executing code
151 | .whenComplete { result in
152 | // do not report retrySend error
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTMessageHandler.swift:156:17: warning: capture of 'self' with non-sendable type 'MQTTMessageHandler' in a '@Sendable' closure
15 | import NIO
16 |
17 | class MQTTMessageHandler: ChannelDuplexHandler {
| `- note: class 'MQTTMessageHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = ByteBuffer
19 | typealias InboundOut = MQTTPacket
:
154 | return
155 | }
156 | self.client.publishListeners.notify(result)
| `- warning: capture of 'self' with non-sendable type 'MQTTMessageHandler' in a '@Sendable' closure
157 | }
158 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:35:17: warning: capture of 'self' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
15 |
16 | /// Task handler.
17 | final class MQTTTaskHandler: ChannelInboundHandler, RemovableChannelHandler {
| `- note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = MQTTPacket
19 |
:
33 | } else {
34 | return self.eventLoop.submit {
35 | self.tasks.append(task)
| `- warning: capture of 'self' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
36 | }
37 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:35:35: warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
33 | } else {
34 | return self.eventLoop.submit {
35 | self.tasks.append(task)
| `- warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
36 | }
37 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTTask.swift:17:13: note: class 'MQTTTask' does not conform to the 'Sendable' protocol
15 |
16 | /// Class encapsulating a single task
17 | final class MQTTTask {
| `- note: class 'MQTTTask' does not conform to the 'Sendable' protocol
18 | let promise: EventLoopPromise<MQTTPacket>
19 | let checkInbound: (MQTTPacket) throws -> Bool
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:53:17: warning: capture of 'self' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
15 |
16 | /// Task handler.
17 | final class MQTTTaskHandler: ChannelInboundHandler, RemovableChannelHandler {
| `- note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = MQTTPacket
19 |
:
51 | } else {
52 | self.eventLoop.execute {
53 | self._removeTask(task)
| `- warning: capture of 'self' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
54 | }
55 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:53:34: warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
51 | } else {
52 | self.eventLoop.execute {
53 | self._removeTask(task)
| `- warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
54 | }
55 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTTask.swift:17:13: note: class 'MQTTTask' does not conform to the 'Sendable' protocol
15 |
16 | /// Class encapsulating a single task
17 | final class MQTTTask {
| `- note: class 'MQTTTask' does not conform to the 'Sendable' protocol
18 | let promise: EventLoopPromise<MQTTPacket>
19 | let checkInbound: (MQTTPacket) throws -> Bool
[314/334] Compiling MQTTNIO MQTTClient+async.swift
[315/334] Compiling MQTTNIO MQTTClientV5+async.swift
[316/334] Compiling MQTTNIO Sendable.swift
[317/334] Compiling MQTTNIO PingreqHandler.swift
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/PingreqHandler.swift:59:16: warning: capture of 'self' with non-sendable type 'PingreqHandler' in a '@Sendable' closure
15 |
16 | /// Channel handler for sending PINGREQ messages to keep connect alive
17 | final class PingreqHandler {
| `- note: class 'PingreqHandler' does not conform to the 'Sendable' protocol
18 | typealias OutboundIn = MQTTPacket
19 | typealias OutboundOut = MQTTPacket
:
57 | // if lastEventTime plus the timeout is less than now send PINGREQ
58 | // otherwise reschedule task
59 | if self.lastEventTime + self.timeout <= .now() {
| `- warning: capture of 'self' with non-sendable type 'PingreqHandler' in a '@Sendable' closure
60 | guard context.channel.isActive else { return }
61 |
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/PingreqHandler.swift:60:23: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
58 | // otherwise reschedule task
59 | if self.lastEventTime + self.timeout <= .now() {
60 | guard context.channel.isActive else { return }
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
61 |
62 | self.client.ping().whenComplete { result in
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 | // visible for ChannelPipeline to modify
1788 | fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/PingreqHandler.swift:65:25: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
63 | switch result {
64 | case .failure(let error):
65 | context.fireErrorCaught(error)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
66 | case .success:
67 | break
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 | // visible for ChannelPipeline to modify
1788 | fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/PingreqHandler.swift:69:21: warning: capture of 'self' with non-sendable type 'PingreqHandler' in a '@Sendable' closure
15 |
16 | /// Channel handler for sending PINGREQ messages to keep connect alive
17 | final class PingreqHandler {
| `- note: class 'PingreqHandler' does not conform to the 'Sendable' protocol
18 | typealias OutboundIn = MQTTPacket
19 | typealias OutboundOut = MQTTPacket
:
67 | break
68 | }
69 | self.lastEventTime = .now()
| `- warning: capture of 'self' with non-sendable type 'PingreqHandler' in a '@Sendable' closure
70 | self.scheduleTask(context)
71 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/WebSocketHandler.swift:121:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
119 | // so the other side likely will never send the close frame. We just close the
120 | // channel ourselves.
121 | context.channel.close(mode: .all, promise: nil)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
122 | }
123 |
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 | // visible for ChannelPipeline to modify
1788 | fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/WebSocketHandler.swift:128:17: warning: capture of 'self' with non-sendable type 'WebSocketHandler' in a '@Sendable' closure
22 | /// The WebSocket ping/pong is implemented but not used as the MQTT client already implements
23 | /// PINGREQ messages
24 | final class WebSocketHandler: ChannelDuplexHandler {
| `- note: class 'WebSocketHandler' does not conform to the 'Sendable' protocol
25 | typealias OutboundIn = ByteBuffer
26 | typealias OutboundOut = WebSocketFrame
:
126 | self.send(context: context, buffer: buffer, opcode: .ping)
127 | _ = context.eventLoop.scheduleTask(in: pingInterval) {
128 | self.sendPingAndWait(context: context)
| `- warning: capture of 'self' with non-sendable type 'WebSocketHandler' in a '@Sendable' closure
129 | }
130 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/WebSocketHandler.swift:128:47: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
126 | self.send(context: context, buffer: buffer, opcode: .ping)
127 | _ = context.eventLoop.scheduleTask(in: pingInterval) {
128 | self.sendPingAndWait(context: context)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
129 | }
130 | }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 | // visible for ChannelPipeline to modify
1788 | fileprivate var next: Optional<ChannelHandlerContext>
[318/334] Compiling MQTTNIO WebSocketHandler.swift
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/PingreqHandler.swift:59:16: warning: capture of 'self' with non-sendable type 'PingreqHandler' in a '@Sendable' closure
15 |
16 | /// Channel handler for sending PINGREQ messages to keep connect alive
17 | final class PingreqHandler {
| `- note: class 'PingreqHandler' does not conform to the 'Sendable' protocol
18 | typealias OutboundIn = MQTTPacket
19 | typealias OutboundOut = MQTTPacket
:
57 | // if lastEventTime plus the timeout is less than now send PINGREQ
58 | // otherwise reschedule task
59 | if self.lastEventTime + self.timeout <= .now() {
| `- warning: capture of 'self' with non-sendable type 'PingreqHandler' in a '@Sendable' closure
60 | guard context.channel.isActive else { return }
61 |
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/PingreqHandler.swift:60:23: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
58 | // otherwise reschedule task
59 | if self.lastEventTime + self.timeout <= .now() {
60 | guard context.channel.isActive else { return }
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
61 |
62 | self.client.ping().whenComplete { result in
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 | // visible for ChannelPipeline to modify
1788 | fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/PingreqHandler.swift:65:25: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
63 | switch result {
64 | case .failure(let error):
65 | context.fireErrorCaught(error)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
66 | case .success:
67 | break
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 | // visible for ChannelPipeline to modify
1788 | fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/PingreqHandler.swift:69:21: warning: capture of 'self' with non-sendable type 'PingreqHandler' in a '@Sendable' closure
15 |
16 | /// Channel handler for sending PINGREQ messages to keep connect alive
17 | final class PingreqHandler {
| `- note: class 'PingreqHandler' does not conform to the 'Sendable' protocol
18 | typealias OutboundIn = MQTTPacket
19 | typealias OutboundOut = MQTTPacket
:
67 | break
68 | }
69 | self.lastEventTime = .now()
| `- warning: capture of 'self' with non-sendable type 'PingreqHandler' in a '@Sendable' closure
70 | self.scheduleTask(context)
71 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/WebSocketHandler.swift:121:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
119 | // so the other side likely will never send the close frame. We just close the
120 | // channel ourselves.
121 | context.channel.close(mode: .all, promise: nil)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
122 | }
123 |
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 | // visible for ChannelPipeline to modify
1788 | fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/WebSocketHandler.swift:128:17: warning: capture of 'self' with non-sendable type 'WebSocketHandler' in a '@Sendable' closure
22 | /// The WebSocket ping/pong is implemented but not used as the MQTT client already implements
23 | /// PINGREQ messages
24 | final class WebSocketHandler: ChannelDuplexHandler {
| `- note: class 'WebSocketHandler' does not conform to the 'Sendable' protocol
25 | typealias OutboundIn = ByteBuffer
26 | typealias OutboundOut = WebSocketFrame
:
126 | self.send(context: context, buffer: buffer, opcode: .ping)
127 | _ = context.eventLoop.scheduleTask(in: pingInterval) {
128 | self.sendPingAndWait(context: context)
| `- warning: capture of 'self' with non-sendable type 'WebSocketHandler' in a '@Sendable' closure
129 | }
130 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/WebSocketHandler.swift:128:47: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
126 | self.send(context: context, buffer: buffer, opcode: .ping)
127 | _ = context.eventLoop.scheduleTask(in: pingInterval) {
128 | self.sendPingAndWait(context: context)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
129 | }
130 | }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 | // visible for ChannelPipeline to modify
1788 | fileprivate var next: Optional<ChannelHandlerContext>
[319/334] Compiling MQTTNIO WebSocketInitialRequest.swift
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/PingreqHandler.swift:59:16: warning: capture of 'self' with non-sendable type 'PingreqHandler' in a '@Sendable' closure
15 |
16 | /// Channel handler for sending PINGREQ messages to keep connect alive
17 | final class PingreqHandler {
| `- note: class 'PingreqHandler' does not conform to the 'Sendable' protocol
18 | typealias OutboundIn = MQTTPacket
19 | typealias OutboundOut = MQTTPacket
:
57 | // if lastEventTime plus the timeout is less than now send PINGREQ
58 | // otherwise reschedule task
59 | if self.lastEventTime + self.timeout <= .now() {
| `- warning: capture of 'self' with non-sendable type 'PingreqHandler' in a '@Sendable' closure
60 | guard context.channel.isActive else { return }
61 |
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/PingreqHandler.swift:60:23: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
58 | // otherwise reschedule task
59 | if self.lastEventTime + self.timeout <= .now() {
60 | guard context.channel.isActive else { return }
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
61 |
62 | self.client.ping().whenComplete { result in
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 | // visible for ChannelPipeline to modify
1788 | fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/PingreqHandler.swift:65:25: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
63 | switch result {
64 | case .failure(let error):
65 | context.fireErrorCaught(error)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
66 | case .success:
67 | break
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 | // visible for ChannelPipeline to modify
1788 | fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/PingreqHandler.swift:69:21: warning: capture of 'self' with non-sendable type 'PingreqHandler' in a '@Sendable' closure
15 |
16 | /// Channel handler for sending PINGREQ messages to keep connect alive
17 | final class PingreqHandler {
| `- note: class 'PingreqHandler' does not conform to the 'Sendable' protocol
18 | typealias OutboundIn = MQTTPacket
19 | typealias OutboundOut = MQTTPacket
:
67 | break
68 | }
69 | self.lastEventTime = .now()
| `- warning: capture of 'self' with non-sendable type 'PingreqHandler' in a '@Sendable' closure
70 | self.scheduleTask(context)
71 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/WebSocketHandler.swift:121:17: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
119 | // so the other side likely will never send the close frame. We just close the
120 | // channel ourselves.
121 | context.channel.close(mode: .all, promise: nil)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
122 | }
123 |
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 | // visible for ChannelPipeline to modify
1788 | fileprivate var next: Optional<ChannelHandlerContext>
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/WebSocketHandler.swift:128:17: warning: capture of 'self' with non-sendable type 'WebSocketHandler' in a '@Sendable' closure
22 | /// The WebSocket ping/pong is implemented but not used as the MQTT client already implements
23 | /// PINGREQ messages
24 | final class WebSocketHandler: ChannelDuplexHandler {
| `- note: class 'WebSocketHandler' does not conform to the 'Sendable' protocol
25 | typealias OutboundIn = ByteBuffer
26 | typealias OutboundOut = WebSocketFrame
:
126 | self.send(context: context, buffer: buffer, opcode: .ping)
127 | _ = context.eventLoop.scheduleTask(in: pingInterval) {
128 | self.sendPingAndWait(context: context)
| `- warning: capture of 'self' with non-sendable type 'WebSocketHandler' in a '@Sendable' closure
129 | }
130 | }
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/WebSocketHandler.swift:128:47: warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
126 | self.send(context: context, buffer: buffer, opcode: .ping)
127 | _ = context.eventLoop.scheduleTask(in: pingInterval) {
128 | self.sendPingAndWait(context: context)
| `- warning: capture of 'context' with non-sendable type 'ChannelHandlerContext' in a '@Sendable' closure
129 | }
130 | }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1786:20: note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1784 | /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
1785 | /// `ChannelHandler`.
1786 | public final class ChannelHandlerContext: ChannelInvoker {
| `- note: class 'ChannelHandlerContext' does not conform to the 'Sendable' protocol
1787 | // visible for ChannelPipeline to modify
1788 | fileprivate var next: Optional<ChannelHandlerContext>
[320/334] Compiling MQTTNIO MQTTSerializer.swift
[321/334] Compiling MQTTNIO MQTTTask.swift
[322/334] Compiling MQTTNIO TSTLSConfiguration.swift
[323/334] Compiling MQTTNIO MQTTConnection.swift
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:47:128: warning: capture of 'taskHandler' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
45 | let taskHandler = MQTTTaskHandler(client: client)
46 | return self.createBootstrap(client: client, pingInterval: pingInterval, taskHandler: taskHandler)
47 | .map { MQTTConnection(channel: $0, cleanSession: cleanSession, timeout: client.configuration.timeout, taskHandler: taskHandler) }
| `- warning: capture of 'taskHandler' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
48 | }
49 |
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:17:13: note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
15 |
16 | /// Task handler.
17 | final class MQTTTaskHandler: ChannelInboundHandler, RemovableChannelHandler {
| `- note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = MQTTPacket
19 |
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:81:61: warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol
79 | }
80 | } else {
81 | return channel.pipeline.addHandlers(handlers)
| `- warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol
82 | }
83 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:63:25: warning: capture of 'taskHandler' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 | let handlers: [ChannelHandler] = [
62 | MQTTMessageHandler(client, pingInterval: pingInterval),
63 | taskHandler,
| `- warning: capture of 'taskHandler' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
64 | ]
65 | // are we using websockets
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:17:13: note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
15 |
16 | /// Task handler.
17 | final class MQTTTaskHandler: ChannelInboundHandler, RemovableChannelHandler {
| `- note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = MQTTPacket
19 |
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:195:74: warning: type 'any NIOHTTPClientProtocolUpgrader' does not conform to the 'Sendable' protocol
193 |
194 | // add HTTP handler with web socket upgrade
195 | return channel.pipeline.addHTTPClientHandlers(withClientUpgrade: config).flatMap {
| `- warning: type 'any NIOHTTPClientProtocolUpgrader' does not conform to the 'Sendable' protocol
196 | channel.pipeline.addHandler(httpHandler)
197 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:181:21: warning: capture of 'afterHandlerAdded' with non-sendable type '() throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
179 | let future = channel.eventLoop.makeCompletedFuture {
180 | try channel.pipeline.syncOperations.addHandler(WebSocketHandler())
181 | try afterHandlerAdded()
| |- warning: capture of 'afterHandlerAdded' with non-sendable type '() throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
182 | }
183 | future.cascade(to: promise)
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:181:21: warning: capture of 'afterHandlerAdded' with non-sendable type '() throws -> Void' in an isolated closure
179 | let future = channel.eventLoop.makeCompletedFuture {
180 | try channel.pipeline.syncOperations.addHandler(WebSocketHandler())
181 | try afterHandlerAdded()
| |- warning: capture of 'afterHandlerAdded' with non-sendable type '() throws -> Void' in an isolated closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
182 | }
183 | future.cascade(to: promise)
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:217:17: warning: capture of 'self' with non-sendable type 'MQTTConnection' in a '@Sendable' closure
29 | #endif
30 |
31 | final class MQTTConnection {
| `- note: class 'MQTTConnection' does not conform to the 'Sendable' protocol
32 | let channel: Channel
33 | let cleanSession: Bool
:
215 | self.taskHandler.addTask(task)
216 | .flatMap {
217 | self.channel.writeAndFlush(message)
| `- warning: capture of 'self' with non-sendable type 'MQTTConnection' in a '@Sendable' closure
218 | }
219 | .whenFailure { error in
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:220:17: warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
218 | }
219 | .whenFailure { error in
220 | task.fail(error)
| `- warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
221 | }
222 | return task.promise.futureResult
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTTask.swift:17:13: note: class 'MQTTTask' does not conform to the 'Sendable' protocol
15 |
16 | /// Class encapsulating a single task
17 | final class MQTTTask {
| `- note: class 'MQTTTask' does not conform to the 'Sendable' protocol
18 | let promise: EventLoopPromise<MQTTPacket>
19 | let checkInbound: (MQTTPacket) throws -> Bool
[324/334] Compiling MQTTNIO MQTTCoreTypes.swift
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:47:128: warning: capture of 'taskHandler' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
45 | let taskHandler = MQTTTaskHandler(client: client)
46 | return self.createBootstrap(client: client, pingInterval: pingInterval, taskHandler: taskHandler)
47 | .map { MQTTConnection(channel: $0, cleanSession: cleanSession, timeout: client.configuration.timeout, taskHandler: taskHandler) }
| `- warning: capture of 'taskHandler' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
48 | }
49 |
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:17:13: note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
15 |
16 | /// Task handler.
17 | final class MQTTTaskHandler: ChannelInboundHandler, RemovableChannelHandler {
| `- note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = MQTTPacket
19 |
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:81:61: warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol
79 | }
80 | } else {
81 | return channel.pipeline.addHandlers(handlers)
| `- warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol
82 | }
83 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:63:25: warning: capture of 'taskHandler' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 | let handlers: [ChannelHandler] = [
62 | MQTTMessageHandler(client, pingInterval: pingInterval),
63 | taskHandler,
| `- warning: capture of 'taskHandler' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
64 | ]
65 | // are we using websockets
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:17:13: note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
15 |
16 | /// Task handler.
17 | final class MQTTTaskHandler: ChannelInboundHandler, RemovableChannelHandler {
| `- note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = MQTTPacket
19 |
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:195:74: warning: type 'any NIOHTTPClientProtocolUpgrader' does not conform to the 'Sendable' protocol
193 |
194 | // add HTTP handler with web socket upgrade
195 | return channel.pipeline.addHTTPClientHandlers(withClientUpgrade: config).flatMap {
| `- warning: type 'any NIOHTTPClientProtocolUpgrader' does not conform to the 'Sendable' protocol
196 | channel.pipeline.addHandler(httpHandler)
197 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:181:21: warning: capture of 'afterHandlerAdded' with non-sendable type '() throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
179 | let future = channel.eventLoop.makeCompletedFuture {
180 | try channel.pipeline.syncOperations.addHandler(WebSocketHandler())
181 | try afterHandlerAdded()
| |- warning: capture of 'afterHandlerAdded' with non-sendable type '() throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
182 | }
183 | future.cascade(to: promise)
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:181:21: warning: capture of 'afterHandlerAdded' with non-sendable type '() throws -> Void' in an isolated closure
179 | let future = channel.eventLoop.makeCompletedFuture {
180 | try channel.pipeline.syncOperations.addHandler(WebSocketHandler())
181 | try afterHandlerAdded()
| |- warning: capture of 'afterHandlerAdded' with non-sendable type '() throws -> Void' in an isolated closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
182 | }
183 | future.cascade(to: promise)
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:217:17: warning: capture of 'self' with non-sendable type 'MQTTConnection' in a '@Sendable' closure
29 | #endif
30 |
31 | final class MQTTConnection {
| `- note: class 'MQTTConnection' does not conform to the 'Sendable' protocol
32 | let channel: Channel
33 | let cleanSession: Bool
:
215 | self.taskHandler.addTask(task)
216 | .flatMap {
217 | self.channel.writeAndFlush(message)
| `- warning: capture of 'self' with non-sendable type 'MQTTConnection' in a '@Sendable' closure
218 | }
219 | .whenFailure { error in
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:220:17: warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
218 | }
219 | .whenFailure { error in
220 | task.fail(error)
| `- warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
221 | }
222 | return task.promise.futureResult
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTTask.swift:17:13: note: class 'MQTTTask' does not conform to the 'Sendable' protocol
15 |
16 | /// Class encapsulating a single task
17 | final class MQTTTask {
| `- note: class 'MQTTTask' does not conform to the 'Sendable' protocol
18 | let promise: EventLoopPromise<MQTTPacket>
19 | let checkInbound: (MQTTPacket) throws -> Bool
[325/334] Compiling MQTTNIO MQTTCoreTypesV5.swift
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:47:128: warning: capture of 'taskHandler' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
45 | let taskHandler = MQTTTaskHandler(client: client)
46 | return self.createBootstrap(client: client, pingInterval: pingInterval, taskHandler: taskHandler)
47 | .map { MQTTConnection(channel: $0, cleanSession: cleanSession, timeout: client.configuration.timeout, taskHandler: taskHandler) }
| `- warning: capture of 'taskHandler' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure
48 | }
49 |
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:17:13: note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
15 |
16 | /// Task handler.
17 | final class MQTTTaskHandler: ChannelInboundHandler, RemovableChannelHandler {
| `- note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = MQTTPacket
19 |
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:81:61: warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol
79 | }
80 | } else {
81 | return channel.pipeline.addHandlers(handlers)
| `- warning: type 'any ChannelHandler' does not conform to the 'Sendable' protocol
82 | }
83 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:63:25: warning: capture of 'taskHandler' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 | let handlers: [ChannelHandler] = [
62 | MQTTMessageHandler(client, pingInterval: pingInterval),
63 | taskHandler,
| `- warning: capture of 'taskHandler' with non-sendable type 'MQTTTaskHandler' in a '@Sendable' closure; this is an error in the Swift 6 language mode
64 | ]
65 | // are we using websockets
/host/spi-builder-workspace/Sources/MQTTNIO/ChannelHandlers/MQTTTaskHandler.swift:17:13: note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
15 |
16 | /// Task handler.
17 | final class MQTTTaskHandler: ChannelInboundHandler, RemovableChannelHandler {
| `- note: class 'MQTTTaskHandler' does not conform to the 'Sendable' protocol
18 | typealias InboundIn = MQTTPacket
19 |
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:195:74: warning: type 'any NIOHTTPClientProtocolUpgrader' does not conform to the 'Sendable' protocol
193 |
194 | // add HTTP handler with web socket upgrade
195 | return channel.pipeline.addHTTPClientHandlers(withClientUpgrade: config).flatMap {
| `- warning: type 'any NIOHTTPClientProtocolUpgrader' does not conform to the 'Sendable' protocol
196 | channel.pipeline.addHandler(httpHandler)
197 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:181:21: warning: capture of 'afterHandlerAdded' with non-sendable type '() throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
179 | let future = channel.eventLoop.makeCompletedFuture {
180 | try channel.pipeline.syncOperations.addHandler(WebSocketHandler())
181 | try afterHandlerAdded()
| |- warning: capture of 'afterHandlerAdded' with non-sendable type '() throws -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
182 | }
183 | future.cascade(to: promise)
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:181:21: warning: capture of 'afterHandlerAdded' with non-sendable type '() throws -> Void' in an isolated closure
179 | let future = channel.eventLoop.makeCompletedFuture {
180 | try channel.pipeline.syncOperations.addHandler(WebSocketHandler())
181 | try afterHandlerAdded()
| |- warning: capture of 'afterHandlerAdded' with non-sendable type '() throws -> Void' in an isolated closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
182 | }
183 | future.cascade(to: promise)
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:217:17: warning: capture of 'self' with non-sendable type 'MQTTConnection' in a '@Sendable' closure
29 | #endif
30 |
31 | final class MQTTConnection {
| `- note: class 'MQTTConnection' does not conform to the 'Sendable' protocol
32 | let channel: Channel
33 | let cleanSession: Bool
:
215 | self.taskHandler.addTask(task)
216 | .flatMap {
217 | self.channel.writeAndFlush(message)
| `- warning: capture of 'self' with non-sendable type 'MQTTConnection' in a '@Sendable' closure
218 | }
219 | .whenFailure { error in
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:220:17: warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
218 | }
219 | .whenFailure { error in
220 | task.fail(error)
| `- warning: capture of 'task' with non-sendable type 'MQTTTask' in a '@Sendable' closure
221 | }
222 | return task.promise.futureResult
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTTask.swift:17:13: note: class 'MQTTTask' does not conform to the 'Sendable' protocol
15 |
16 | /// Class encapsulating a single task
17 | final class MQTTTask {
| `- note: class 'MQTTTask' does not conform to the 'Sendable' protocol
18 | let promise: EventLoopPromise<MQTTPacket>
19 | let checkInbound: (MQTTPacket) throws -> Bool
[326/334] Compiling MQTTNIO MQTTError.swift
[327/334] Compiling MQTTNIO MQTTInflight.swift
[328/334] Compiling MQTTNIO MQTTListeners.swift
[329/334] Compiling MQTTNIO MQTTPacket.swift
[330/334] Compiling MQTTNIO MQTTProperties.swift
[331/334] Compiling MQTTNIO MQTTReason.swift
[332/334] Compiling MQTTNIO MQTTClient.swift
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:252:17: warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
250 |
251 | self.shutdownEventLoopGroup(queue: queue) { error in
252 | callback(closeError ?? error)
| |- warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 | }
254 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:252:17: warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
250 |
251 | self.shutdownEventLoopGroup(queue: queue) { error in
252 | callback(closeError ?? error)
| |- warning: capture of 'callback' with non-sendable type '((any Error)?) -> 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'
253 | }
254 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:265:66: warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
256 |
257 | /// shutdown EventLoopGroup
258 | private func shutdownEventLoopGroup(queue: DispatchQueue, _ callback: @escaping (Error?) -> Void) {
| `- note: parameter 'callback' is implicitly non-sendable
259 | switch self.eventLoopGroupProvider {
260 | case .shared:
:
263 | }
264 | case .createNew:
265 | self.eventLoopGroup.shutdownGracefully(queue: queue, callback)
| `- warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
266 | }
267 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:262:17: warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
260 | case .shared:
261 | queue.async {
262 | callback(nil)
| |- warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
263 | }
264 | case .createNew:
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:499:44: warning: capture of 'connection' with non-sendable type 'MQTTConnection' in a '@Sendable' closure
497 | // only reset connection if this connection is still set. Stops a reconnect having its connection removed by the
498 | // previous connection
499 | if self.connection === connection {
| `- warning: capture of 'connection' with non-sendable type 'MQTTConnection' in a '@Sendable' closure
500 | self.connection = nil
501 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:31:13: note: class 'MQTTConnection' does not conform to the 'Sendable' protocol
29 | #endif
30 |
31 | final class MQTTConnection {
| `- note: class 'MQTTConnection' does not conform to the 'Sendable' protocol
32 | let channel: Channel
33 | let cleanSession: Bool
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:528:31: warning: capture of 'authWorkflow' with non-sendable type '((MQTTAuthV5, any EventLoop) -> EventLoopFuture<MQTTAuthV5>)?' in a '@Sendable' closure
526 | case let auth as MQTTAuthPacket:
527 | // auth messages require an auth workflow closure
528 | guard let authWorkflow else { return eventLoop.makeFailedFuture(MQTTError.authWorkflowRequired) }
| |- warning: capture of 'authWorkflow' with non-sendable type '((MQTTAuthV5, any EventLoop) -> EventLoopFuture<MQTTAuthV5>)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
529 | return self.processAuth(auth, authWorkflow: authWorkflow, on: eventLoop)
530 | .flatMapThrowing { result -> MQTTConnAckPacket in
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:636:29: warning: capture of 'workflow' with non-sendable type '(MQTTAuthPacket) -> ()' in a '@Sendable' closure
634 | switch auth.reason {
635 | case .continueAuthentication:
636 | workflow(auth)
| |- warning: capture of 'workflow' with non-sendable type '(MQTTAuthPacket) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
637 | case .success:
638 | promise.succeed(auth)
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:622:14: warning: concurrently-executed local function 'workflow' must be marked as '@Sendable'
620 | ) -> EventLoopFuture<MQTTPacket> {
621 | let promise = eventLoop.makePromise(of: MQTTPacket.self)
622 | func workflow(_ packet: MQTTAuthPacket) {
| `- warning: concurrently-executed local function 'workflow' must be marked as '@Sendable'
623 | let auth = MQTTAuthV5(reason: packet.reason, properties: packet.properties)
624 | authWorkflow(auth, eventLoop)
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClientV5.swift:190:27: warning: capture of 'authWorkflow' with non-sendable type '((MQTTAuthV5, any EventLoop) -> EventLoopFuture<MQTTAuthV5>)?' in a '@Sendable' closure
188 | return eventLoop.makeSucceededFuture(auth)
189 | }
190 | guard let authWorkflow else { return eventLoop.makeFailedFuture(MQTTError.authWorkflowRequired) }
| |- warning: capture of 'authWorkflow' with non-sendable type '((MQTTAuthV5, any EventLoop) -> EventLoopFuture<MQTTAuthV5>)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
191 | return self.client.processAuth(authPacket, authWorkflow: authWorkflow, on: eventLoop)
192 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClientV5.swift:191:24: warning: capture of 'self' with non-sendable type 'MQTTClient.V5' in a '@Sendable' closure
16 | extension MQTTClient {
17 | /// Provides implementations of functions that expose MQTT Version 5.0 features
18 | public struct V5 {
| `- note: consider making struct 'V5' conform to the 'Sendable' protocol
19 | let client: MQTTClient
20 |
:
189 | }
190 | guard let authWorkflow else { return eventLoop.makeFailedFuture(MQTTError.authWorkflowRequired) }
191 | return self.client.processAuth(authPacket, authWorkflow: authWorkflow, on: eventLoop)
| `- warning: capture of 'self' with non-sendable type 'MQTTClient.V5' in a '@Sendable' closure
192 | }
193 | .flatMapThrowing { response -> MQTTAuthV5 in
[333/334] Compiling MQTTNIO MQTTClientV5.swift
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:252:17: warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
250 |
251 | self.shutdownEventLoopGroup(queue: queue) { error in
252 | callback(closeError ?? error)
| |- warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 | }
254 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:252:17: warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
250 |
251 | self.shutdownEventLoopGroup(queue: queue) { error in
252 | callback(closeError ?? error)
| |- warning: capture of 'callback' with non-sendable type '((any Error)?) -> 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'
253 | }
254 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:265:66: warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
256 |
257 | /// shutdown EventLoopGroup
258 | private func shutdownEventLoopGroup(queue: DispatchQueue, _ callback: @escaping (Error?) -> Void) {
| `- note: parameter 'callback' is implicitly non-sendable
259 | switch self.eventLoopGroupProvider {
260 | case .shared:
:
263 | }
264 | case .createNew:
265 | self.eventLoopGroup.shutdownGracefully(queue: queue, callback)
| `- warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
266 | }
267 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:262:17: warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
260 | case .shared:
261 | queue.async {
262 | callback(nil)
| |- warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
263 | }
264 | case .createNew:
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:499:44: warning: capture of 'connection' with non-sendable type 'MQTTConnection' in a '@Sendable' closure
497 | // only reset connection if this connection is still set. Stops a reconnect having its connection removed by the
498 | // previous connection
499 | if self.connection === connection {
| `- warning: capture of 'connection' with non-sendable type 'MQTTConnection' in a '@Sendable' closure
500 | self.connection = nil
501 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:31:13: note: class 'MQTTConnection' does not conform to the 'Sendable' protocol
29 | #endif
30 |
31 | final class MQTTConnection {
| `- note: class 'MQTTConnection' does not conform to the 'Sendable' protocol
32 | let channel: Channel
33 | let cleanSession: Bool
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:528:31: warning: capture of 'authWorkflow' with non-sendable type '((MQTTAuthV5, any EventLoop) -> EventLoopFuture<MQTTAuthV5>)?' in a '@Sendable' closure
526 | case let auth as MQTTAuthPacket:
527 | // auth messages require an auth workflow closure
528 | guard let authWorkflow else { return eventLoop.makeFailedFuture(MQTTError.authWorkflowRequired) }
| |- warning: capture of 'authWorkflow' with non-sendable type '((MQTTAuthV5, any EventLoop) -> EventLoopFuture<MQTTAuthV5>)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
529 | return self.processAuth(auth, authWorkflow: authWorkflow, on: eventLoop)
530 | .flatMapThrowing { result -> MQTTConnAckPacket in
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:636:29: warning: capture of 'workflow' with non-sendable type '(MQTTAuthPacket) -> ()' in a '@Sendable' closure
634 | switch auth.reason {
635 | case .continueAuthentication:
636 | workflow(auth)
| |- warning: capture of 'workflow' with non-sendable type '(MQTTAuthPacket) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
637 | case .success:
638 | promise.succeed(auth)
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:622:14: warning: concurrently-executed local function 'workflow' must be marked as '@Sendable'
620 | ) -> EventLoopFuture<MQTTPacket> {
621 | let promise = eventLoop.makePromise(of: MQTTPacket.self)
622 | func workflow(_ packet: MQTTAuthPacket) {
| `- warning: concurrently-executed local function 'workflow' must be marked as '@Sendable'
623 | let auth = MQTTAuthV5(reason: packet.reason, properties: packet.properties)
624 | authWorkflow(auth, eventLoop)
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClientV5.swift:190:27: warning: capture of 'authWorkflow' with non-sendable type '((MQTTAuthV5, any EventLoop) -> EventLoopFuture<MQTTAuthV5>)?' in a '@Sendable' closure
188 | return eventLoop.makeSucceededFuture(auth)
189 | }
190 | guard let authWorkflow else { return eventLoop.makeFailedFuture(MQTTError.authWorkflowRequired) }
| |- warning: capture of 'authWorkflow' with non-sendable type '((MQTTAuthV5, any EventLoop) -> EventLoopFuture<MQTTAuthV5>)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
191 | return self.client.processAuth(authPacket, authWorkflow: authWorkflow, on: eventLoop)
192 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClientV5.swift:191:24: warning: capture of 'self' with non-sendable type 'MQTTClient.V5' in a '@Sendable' closure
16 | extension MQTTClient {
17 | /// Provides implementations of functions that expose MQTT Version 5.0 features
18 | public struct V5 {
| `- note: consider making struct 'V5' conform to the 'Sendable' protocol
19 | let client: MQTTClient
20 |
:
189 | }
190 | guard let authWorkflow else { return eventLoop.makeFailedFuture(MQTTError.authWorkflowRequired) }
191 | return self.client.processAuth(authPacket, authWorkflow: authWorkflow, on: eventLoop)
| `- warning: capture of 'self' with non-sendable type 'MQTTClient.V5' in a '@Sendable' closure
192 | }
193 | .flatMapThrowing { response -> MQTTAuthV5 in
[334/334] Compiling MQTTNIO MQTTConfiguration.swift
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:252:17: warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
250 |
251 | self.shutdownEventLoopGroup(queue: queue) { error in
252 | callback(closeError ?? error)
| |- warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
253 | }
254 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:252:17: warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in an isolated closure; this is an error in the Swift 6 language mode
250 |
251 | self.shutdownEventLoopGroup(queue: queue) { error in
252 | callback(closeError ?? error)
| |- warning: capture of 'callback' with non-sendable type '((any Error)?) -> 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'
253 | }
254 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:265:66: warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
256 |
257 | /// shutdown EventLoopGroup
258 | private func shutdownEventLoopGroup(queue: DispatchQueue, _ callback: @escaping (Error?) -> Void) {
| `- note: parameter 'callback' is implicitly non-sendable
259 | switch self.eventLoopGroupProvider {
260 | case .shared:
:
263 | }
264 | case .createNew:
265 | self.eventLoopGroup.shutdownGracefully(queue: queue, callback)
| `- warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
266 | }
267 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:262:17: warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
260 | case .shared:
261 | queue.async {
262 | callback(nil)
| |- warning: capture of 'callback' with non-sendable type '((any Error)?) -> Void' in a '@Sendable' closure; this is an error in the Swift 6 language mode
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
263 | }
264 | case .createNew:
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:499:44: warning: capture of 'connection' with non-sendable type 'MQTTConnection' in a '@Sendable' closure
497 | // only reset connection if this connection is still set. Stops a reconnect having its connection removed by the
498 | // previous connection
499 | if self.connection === connection {
| `- warning: capture of 'connection' with non-sendable type 'MQTTConnection' in a '@Sendable' closure
500 | self.connection = nil
501 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTConnection.swift:31:13: note: class 'MQTTConnection' does not conform to the 'Sendable' protocol
29 | #endif
30 |
31 | final class MQTTConnection {
| `- note: class 'MQTTConnection' does not conform to the 'Sendable' protocol
32 | let channel: Channel
33 | let cleanSession: Bool
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:528:31: warning: capture of 'authWorkflow' with non-sendable type '((MQTTAuthV5, any EventLoop) -> EventLoopFuture<MQTTAuthV5>)?' in a '@Sendable' closure
526 | case let auth as MQTTAuthPacket:
527 | // auth messages require an auth workflow closure
528 | guard let authWorkflow else { return eventLoop.makeFailedFuture(MQTTError.authWorkflowRequired) }
| |- warning: capture of 'authWorkflow' with non-sendable type '((MQTTAuthV5, any EventLoop) -> EventLoopFuture<MQTTAuthV5>)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
529 | return self.processAuth(auth, authWorkflow: authWorkflow, on: eventLoop)
530 | .flatMapThrowing { result -> MQTTConnAckPacket in
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:636:29: warning: capture of 'workflow' with non-sendable type '(MQTTAuthPacket) -> ()' in a '@Sendable' closure
634 | switch auth.reason {
635 | case .continueAuthentication:
636 | workflow(auth)
| |- warning: capture of 'workflow' with non-sendable type '(MQTTAuthPacket) -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
637 | case .success:
638 | promise.succeed(auth)
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClient.swift:622:14: warning: concurrently-executed local function 'workflow' must be marked as '@Sendable'
620 | ) -> EventLoopFuture<MQTTPacket> {
621 | let promise = eventLoop.makePromise(of: MQTTPacket.self)
622 | func workflow(_ packet: MQTTAuthPacket) {
| `- warning: concurrently-executed local function 'workflow' must be marked as '@Sendable'
623 | let auth = MQTTAuthV5(reason: packet.reason, properties: packet.properties)
624 | authWorkflow(auth, eventLoop)
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClientV5.swift:190:27: warning: capture of 'authWorkflow' with non-sendable type '((MQTTAuthV5, any EventLoop) -> EventLoopFuture<MQTTAuthV5>)?' in a '@Sendable' closure
188 | return eventLoop.makeSucceededFuture(auth)
189 | }
190 | guard let authWorkflow else { return eventLoop.makeFailedFuture(MQTTError.authWorkflowRequired) }
| |- warning: capture of 'authWorkflow' with non-sendable type '((MQTTAuthV5, any EventLoop) -> EventLoopFuture<MQTTAuthV5>)?' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
191 | return self.client.processAuth(authPacket, authWorkflow: authWorkflow, on: eventLoop)
192 | }
/host/spi-builder-workspace/Sources/MQTTNIO/MQTTClientV5.swift:191:24: warning: capture of 'self' with non-sendable type 'MQTTClient.V5' in a '@Sendable' closure
16 | extension MQTTClient {
17 | /// Provides implementations of functions that expose MQTT Version 5.0 features
18 | public struct V5 {
| `- note: consider making struct 'V5' conform to the 'Sendable' protocol
19 | let client: MQTTClient
20 |
:
189 | }
190 | guard let authWorkflow else { return eventLoop.makeFailedFuture(MQTTError.authWorkflowRequired) }
191 | return self.client.processAuth(authPacket, authWorkflow: authWorkflow, on: eventLoop)
| `- warning: capture of 'self' with non-sendable type 'MQTTClient.V5' in a '@Sendable' closure
192 | }
193 | .flatMapThrowing { response -> MQTTAuthV5 in
Build complete! (128.09s)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-atomics",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-atomics.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
},
{
"identity" : "swift-nio",
"requirement" : {
"range" : [
{
"lower_bound" : "2.80.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio.git"
},
{
"identity" : "swift-nio-ssl",
"requirement" : {
"range" : [
{
"lower_bound" : "2.14.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio-ssl.git"
},
{
"identity" : "swift-nio-transport-services",
"requirement" : {
"range" : [
{
"lower_bound" : "1.20.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio-transport-services.git"
},
{
"identity" : "swift-docc-plugin",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-docc-plugin"
}
],
"manifest_display_name" : "mqtt-nio",
"name" : "mqtt-nio",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.14"
},
{
"name" : "ios",
"version" : "12.0"
},
{
"name" : "tvos",
"version" : "12.0"
},
{
"name" : "watchos",
"version" : "6.0"
}
],
"products" : [
{
"name" : "MQTTNIO",
"targets" : [
"MQTTNIO"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "MQTTNIOTests",
"module_type" : "SwiftTarget",
"name" : "MQTTNIOTests",
"path" : "Tests/MQTTNIOTests",
"sources" : [
"CoreMQTTTests.swift",
"MQTTNIOTests+async.swift",
"MQTTNIOTests.swift",
"MQTTNIOv5Tests.swift"
],
"target_dependencies" : [
"MQTTNIO"
],
"type" : "test"
},
{
"c99name" : "MQTTNIO",
"module_type" : "SwiftTarget",
"name" : "MQTTNIO",
"path" : "Sources/MQTTNIO",
"product_dependencies" : [
"Atomics",
"Logging",
"NIO",
"NIOConcurrencyHelpers",
"NIOHTTP1",
"NIOWebSocket",
"NIOSSL",
"NIOTransportServices"
],
"product_memberships" : [
"MQTTNIO"
],
"sources" : [
"AsyncAwaitSupport/MQTTClient+async.swift",
"AsyncAwaitSupport/MQTTClientV5+async.swift",
"AsyncAwaitSupport/Sendable.swift",
"ChannelHandlers/MQTTMessageDecoder.swift",
"ChannelHandlers/MQTTMessageHandler.swift",
"ChannelHandlers/MQTTTaskHandler.swift",
"ChannelHandlers/PingreqHandler.swift",
"ChannelHandlers/WebSocketHandler.swift",
"ChannelHandlers/WebSocketInitialRequest.swift",
"MQTTClient.swift",
"MQTTClientV5.swift",
"MQTTConfiguration.swift",
"MQTTConnection.swift",
"MQTTCoreTypes.swift",
"MQTTCoreTypesV5.swift",
"MQTTError.swift",
"MQTTInflight.swift",
"MQTTListeners.swift",
"MQTTPacket.swift",
"MQTTProperties.swift",
"MQTTReason.swift",
"MQTTSerializer.swift",
"MQTTTask.swift",
"TSTLSConfiguration.swift"
],
"type" : "library"
}
],
"tools_version" : "5.7"
}
android-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:fe1962677657b2408c217cb5cceb3c09bc1d91486e360cebbc6eee461a5945d8
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.1-latest
Done.