The Swift Package Index logo.Swift Package Index

Build Information

Successful build of SwiftUPnP, reference main (fcd298), with Swift 6.1 for macOS (SPM) on 18 Oct 2026 21:31:48 UTC.

Swift 6 data race errors: 4

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 5.1.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/katoemba/SwiftUPnP.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/katoemba/SwiftUPnP
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at fcd298d Make SSDP discovery resilient to network changes and fix byebye handling.
Cloned https://github.com/katoemba/SwiftUPnP.git
Revision (git rev-parse @):
fcd298d753bfd9b59ffb45df684694edea2f23bd
SUCCESS checkout https://github.com/katoemba/SwiftUPnP.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/katoemba/SwiftUPnP.git
https://github.com/katoemba/SwiftUPnP.git
{
  "dependencies" : [
    {
      "identity" : "xmlcoder",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.13.1",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/CoreOffice/XMLCoder.git"
    },
    {
      "identity" : "cocoaasyncsocket",
      "requirement" : {
        "branch" : [
          "master"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/robbiehanson/CocoaAsyncSocket.git"
    },
    {
      "identity" : "mocker",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.0.0",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/WeTransfer/Mocker.git"
    }
  ],
  "manifest_display_name" : "SwiftUPnP",
  "name" : "SwiftUPnP",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "watchos",
      "version" : "10.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftUPnP",
      "targets" : [
        "SwiftUPnP"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "UPnPCodeGenerator",
      "targets" : [
        "UPnPCodeGenerator"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "UPnPCodeGenerator",
      "module_type" : "SwiftTarget",
      "name" : "UPnPCodeGenerator",
      "path" : "CodeGenerator",
      "product_dependencies" : [
        "XMLCoder"
      ],
      "product_memberships" : [
        "UPnPCodeGenerator"
      ],
      "sources" : [
        "ServiceDefinition.swift",
        "SourceGenerator.swift",
        "main.swift"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "SwiftUPnPTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftUPnPTests",
      "path" : "Tests/SwiftUPnPTests",
      "product_dependencies" : [
        "Mocker"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/AVTransport1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/ConnectionManager1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/ContentDirectory1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/MediaServerDevice.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeConfig1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeCredentials1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeInfo1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeOAuth1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomePins1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomePlaylist1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomePlaylistManager1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeProduct1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeProduct2Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeRadio1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeReceiver1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeRendererDevice.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeSender1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeTime1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeTransport1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeVolume1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeVolume2Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/RenderingControl1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "HTTPServerTests.swift",
        "SSDPDiscoveryTests.swift",
        "SwiftUPnPTests.swift",
        "UPnPSubscriptionTests.swift"
      ],
      "target_dependencies" : [
        "SwiftUPnP"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftUPnP",
      "module_type" : "SwiftTarget",
      "name" : "SwiftUPnP",
      "path" : "Source",
      "product_dependencies" : [
        "XMLCoder",
        "CocoaAsyncSocket"
      ],
      "product_memberships" : [
        "SwiftUPnP"
      ],
      "sources" : [
        "Profiles/AV Profile/AVTransport1Service.swift",
        "Profiles/AV Profile/ConnectionManager1Service.swift",
        "Profiles/AV Profile/ContentDirectory1Service+DIDL.swift",
        "Profiles/AV Profile/ContentDirectory1Service.swift",
        "Profiles/AV Profile/RenderingControl1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeConfig1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeCredentials1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeInfo1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeOAuth1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePins1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylist1Service+DIDL.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylist1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylistManager1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeProduct1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeProduct2Service.swift",
        "Profiles/OpenHome Profile/OpenHomeRadio1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeReceiver1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeSender1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeTime1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeTransport1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeVolume1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeVolume2Service.swift",
        "SSDP/SSDPCocoaAsyncSocketDiscovery.swift",
        "SSDP/SSDPDiscovery.swift",
        "SSDP/SSDPNetworkDiscovery.swift",
        "SSDP/UserAgentGenerator.swift",
        "Support/HTTPServer.swift",
        "Support/IPHelper.swift",
        "Support/Publisher+Stream.swift",
        "Support/XMLParserSupport.swift",
        "UPnP/UPnPDevice.swift",
        "UPnP/UPnPDeviceDefinition.swift",
        "UPnP/UPnPRegistry.swift",
        "UPnP/UPnPService.swift",
        "UPnP/UPnPServiceDefinition.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/10] Write sources
[0/10] Write UPnPCodeGenerator-entitlement.plist
[2/10] Write sources
[4/10] Write swift-version-2F0A5646E1D333AE.txt
[5/57] Compiling CocoaAsyncSocket GCDAsyncUdpSocket.m
[6/57] Compiling CocoaAsyncSocket GCDAsyncSocket.m
[8/57] Emitting module XMLCoder
[9/62] Compiling XMLCoder DynamicNodeEncoding.swift
[10/62] Compiling XMLCoder EncodingErrorExtension.swift
[11/62] Compiling XMLCoder SingleValueEncodingContainer.swift
[12/62] Compiling XMLCoder XMLChoiceEncodingContainer.swift
[13/62] Compiling XMLCoder XMLEncoder.swift
[14/62] Compiling XMLCoder XMLEncoderImplementation.swift
[15/62] Compiling XMLCoder XMLEncodingStorage.swift
[16/62] Compiling XMLCoder XMLKeyedEncodingContainer.swift
[17/62] Compiling XMLCoder XMLReferencingEncoder.swift
[18/62] Compiling XMLCoder XMLUnkeyedEncodingContainer.swift
[19/62] Compiling XMLCoder ISO8601DateFormatter.swift
[20/62] Compiling XMLCoder KeyedStorage.swift
[21/62] Compiling XMLCoder Metatypes.swift
[22/62] Compiling XMLCoder String+Extensions.swift
[23/62] Compiling XMLCoder Utils.swift
[24/62] Compiling XMLCoder Attribute.swift
[25/62] Compiling XMLCoder BoolBox.swift
[26/62] Compiling XMLCoder Box.swift
[27/62] Compiling XMLCoder ChoiceBox.swift
[28/62] Compiling XMLCoder DataBox.swift
[29/62] Compiling XMLCoder DateBox.swift
[30/62] Compiling XMLCoder XMLDecoder.swift
[31/62] Compiling XMLCoder XMLDecoderImplementation.swift
[32/62] Compiling XMLCoder XMLDecodingStorage.swift
[33/62] Compiling XMLCoder XMLKeyedDecodingContainer.swift
[34/62] Compiling XMLCoder XMLUnkeyedDecodingContainer.swift
[35/62] Compiling XMLCoder NullBox.swift
[36/62] Compiling XMLCoder SharedBox.swift
[37/62] Compiling XMLCoder SingleKeyedBox.swift
[38/62] Compiling XMLCoder StringBox.swift
[39/62] Compiling XMLCoder UIntBox.swift
[40/62] Compiling XMLCoder DecimalBox.swift
[41/62] Compiling XMLCoder DoubleBox.swift
[42/62] Compiling XMLCoder FloatBox.swift
[43/62] Compiling XMLCoder IntBox.swift
[44/62] Compiling XMLCoder KeyedBox.swift
[45/62] Compiling XMLCoder XMLChoiceCodingKey.swift
[46/62] Compiling XMLCoder XMLCoderElement.swift
[47/62] Compiling XMLCoder XMLDocumentType.swift
[48/62] Compiling XMLCoder XMLHeader.swift
[49/62] Compiling XMLCoder XMLKey.swift
[50/62] Compiling XMLCoder URLBox.swift
[51/62] Compiling XMLCoder UnkeyedBox.swift
[52/62] Compiling XMLCoder ValueBox.swift
[53/62] Compiling XMLCoder Element.swift
[54/62] Compiling XMLCoder ElementAndAttribute.swift
[55/62] Compiling XMLCoder XMLStackParser.swift
[56/62] Compiling XMLCoder DecodingErrorExtension.swift
[57/62] Compiling XMLCoder DynamicNodeDecoding.swift
[58/62] Compiling XMLCoder SingleValueDecodingContainer.swift
[59/62] Compiling XMLCoder XMLChoiceDecodingContainer.swift
[60/99] Compiling UPnPCodeGenerator main.swift
[61/99] Emitting module UPnPCodeGenerator
[62/99] Compiling UPnPCodeGenerator SourceGenerator.swift
[63/99] Compiling UPnPCodeGenerator ServiceDefinition.swift
[63/99] Write Objects.LinkFileList
[64/99] Linking UPnPCodeGenerator
[65/99] Applying UPnPCodeGenerator
[67/99] Compiling SwiftUPnP XMLParserSupport.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:157:46: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
155 |                 let service: UPnPService?
156 |                 if let registry {
157 |                     service = await registry.typedService(device: self, serviceUrn: deviceService.serviceType)
    |                                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                              |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'typedService(device:serviceUrn:)' risks causing data races between main actor-isolated and local nonisolated uses
    |                                              `- note: access can happen concurrently
158 |                 }
159 |                 else {
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:157:46: warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
155 |                 let service: UPnPService?
156 |                 if let registry {
157 |                     service = await registry.typedService(device: self, serviceUrn: deviceService.serviceType)
    |                                              |- warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
    |                                              |- note: sending main actor-isolated 'registry' to main actor-isolated instance method 'typedService(device:serviceUrn:)' risks causing data races between main actor-isolated and local nonisolated uses
    |                                              `- note: access can happen concurrently
158 |                 }
159 |                 else {
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:165:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
163 |
164 |                 await service.loadScdp()
165 |                 await add(service)
    |                       |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                       |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'add' risks causing data races between main actor-isolated and local nonisolated uses
    |                       `- note: access can happen concurrently
166 |             }
167 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:106:25: warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
104 |         let device = UPnPDevice(upnpDeviceDescription: upnpDeviceDescription)
105 |
106 |         if await device.loadServices(registry: registry) {
    |                         |- warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: sending main actor-isolated 'registry' to nonisolated instance method 'loadServices(registry:)' risks causing data races between nonisolated and main actor-isolated uses
107 |             device.servicesLoaded = true
108 |
[68/99] Compiling SwiftUPnP UPnPDevice.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:157:46: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
155 |                 let service: UPnPService?
156 |                 if let registry {
157 |                     service = await registry.typedService(device: self, serviceUrn: deviceService.serviceType)
    |                                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                              |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'typedService(device:serviceUrn:)' risks causing data races between main actor-isolated and local nonisolated uses
    |                                              `- note: access can happen concurrently
158 |                 }
159 |                 else {
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:157:46: warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
155 |                 let service: UPnPService?
156 |                 if let registry {
157 |                     service = await registry.typedService(device: self, serviceUrn: deviceService.serviceType)
    |                                              |- warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
    |                                              |- note: sending main actor-isolated 'registry' to main actor-isolated instance method 'typedService(device:serviceUrn:)' risks causing data races between main actor-isolated and local nonisolated uses
    |                                              `- note: access can happen concurrently
158 |                 }
159 |                 else {
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:165:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
163 |
164 |                 await service.loadScdp()
165 |                 await add(service)
    |                       |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                       |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'add' risks causing data races between main actor-isolated and local nonisolated uses
    |                       `- note: access can happen concurrently
166 |             }
167 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:106:25: warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
104 |         let device = UPnPDevice(upnpDeviceDescription: upnpDeviceDescription)
105 |
106 |         if await device.loadServices(registry: registry) {
    |                         |- warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: sending main actor-isolated 'registry' to nonisolated instance method 'loadServices(registry:)' risks causing data races between nonisolated and main actor-isolated uses
107 |             device.servicesLoaded = true
108 |
[69/99] Compiling SwiftUPnP UPnPDeviceDefinition.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:157:46: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
155 |                 let service: UPnPService?
156 |                 if let registry {
157 |                     service = await registry.typedService(device: self, serviceUrn: deviceService.serviceType)
    |                                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                              |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'typedService(device:serviceUrn:)' risks causing data races between main actor-isolated and local nonisolated uses
    |                                              `- note: access can happen concurrently
158 |                 }
159 |                 else {
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:157:46: warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
155 |                 let service: UPnPService?
156 |                 if let registry {
157 |                     service = await registry.typedService(device: self, serviceUrn: deviceService.serviceType)
    |                                              |- warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
    |                                              |- note: sending main actor-isolated 'registry' to main actor-isolated instance method 'typedService(device:serviceUrn:)' risks causing data races between main actor-isolated and local nonisolated uses
    |                                              `- note: access can happen concurrently
158 |                 }
159 |                 else {
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:165:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
163 |
164 |                 await service.loadScdp()
165 |                 await add(service)
    |                       |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                       |- note: sending main actor-isolated 'self' to main actor-isolated instance method 'add' risks causing data races between main actor-isolated and local nonisolated uses
    |                       `- note: access can happen concurrently
166 |             }
167 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPDevice.swift:106:25: warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
104 |         let device = UPnPDevice(upnpDeviceDescription: upnpDeviceDescription)
105 |
106 |         if await device.loadServices(registry: registry) {
    |                         |- warning: sending 'registry' risks causing data races; this is an error in the Swift 6 language mode
    |                         `- note: sending main actor-isolated 'registry' to nonisolated instance method 'loadServices(registry:)' risks causing data races between nonisolated and main actor-isolated uses
107 |             device.servicesLoaded = true
108 |
[70/102] Compiling SwiftUPnP UPnPRegistry.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:32:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
 29 | import os.log
 30 |
 31 | public class UPnPRegistry {
    |              `- note: class 'UPnPRegistry' does not conform to the 'Sendable' protocol
 32 |     public static let shared = UPnPRegistry()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 33 |
 34 |     // Use CocoaAsyncSocket discovery for SSDP, as the standard network framework doesn't support when
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:49:23: warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     }
 48 |
 49 |     public static var defaultSubscriptionTimeout = 120
    |                       |- warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSubscriptionTimeout' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSubscriptionTimeout' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     public let controlUrl: URL
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:100:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 98 |                 // The network is usually still settling when the listener drops out.
 99 |                 try? await Task.sleep(nanoseconds: 1_000_000_000)
100 |                 await self?.startHTTPServer()
    |                       |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                       `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
101 |             }
102 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:116:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
114 |         // The discovery engine keeps its state on the main queue, like its socket callbacks.
115 |         Task { @MainActor in
116 |             await startHTTPServerIfNotRunning()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
117 |             try discoveryEngine.startDiscovery(forTypes: filteredTypes)
118 |             discoveryEngine.searchRequest()
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:124:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
122 |     public func stopDiscovery() {
123 |         Task { @MainActor in
124 |             discoveryEngine.stopDiscovery()
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
125 |             stopHTTPServer()
126 |             devices.removeAll(keepingCapacity: false)
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:184:38: warning: sending 'self.httpServer' risks causing data races; this is an error in the Swift 6 language mode
182 |
183 |             do {
184 |                 try await httpServer.start(port: port)
    |                                      |- warning: sending 'self.httpServer' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: sending main actor-isolated 'self.httpServer' to nonisolated callee risks causing data races between nonisolated and main actor-isolated uses
185 |
186 |                 // Binding is not instant, and discovery may have been stopped while it was underway.
[71/102] Compiling SwiftUPnP UPnPService.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:32:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
 29 | import os.log
 30 |
 31 | public class UPnPRegistry {
    |              `- note: class 'UPnPRegistry' does not conform to the 'Sendable' protocol
 32 |     public static let shared = UPnPRegistry()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 33 |
 34 |     // Use CocoaAsyncSocket discovery for SSDP, as the standard network framework doesn't support when
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:49:23: warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     }
 48 |
 49 |     public static var defaultSubscriptionTimeout = 120
    |                       |- warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSubscriptionTimeout' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSubscriptionTimeout' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     public let controlUrl: URL
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:100:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 98 |                 // The network is usually still settling when the listener drops out.
 99 |                 try? await Task.sleep(nanoseconds: 1_000_000_000)
100 |                 await self?.startHTTPServer()
    |                       |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                       `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
101 |             }
102 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:116:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
114 |         // The discovery engine keeps its state on the main queue, like its socket callbacks.
115 |         Task { @MainActor in
116 |             await startHTTPServerIfNotRunning()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
117 |             try discoveryEngine.startDiscovery(forTypes: filteredTypes)
118 |             discoveryEngine.searchRequest()
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:124:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
122 |     public func stopDiscovery() {
123 |         Task { @MainActor in
124 |             discoveryEngine.stopDiscovery()
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
125 |             stopHTTPServer()
126 |             devices.removeAll(keepingCapacity: false)
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:184:38: warning: sending 'self.httpServer' risks causing data races; this is an error in the Swift 6 language mode
182 |
183 |             do {
184 |                 try await httpServer.start(port: port)
    |                                      |- warning: sending 'self.httpServer' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: sending main actor-isolated 'self.httpServer' to nonisolated callee risks causing data races between nonisolated and main actor-isolated uses
185 |
186 |                 // Binding is not instant, and discovery may have been stopped while it was underway.
[72/102] Compiling SwiftUPnP UPnPServiceDefinition.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:32:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
 29 | import os.log
 30 |
 31 | public class UPnPRegistry {
    |              `- note: class 'UPnPRegistry' does not conform to the 'Sendable' protocol
 32 |     public static let shared = UPnPRegistry()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 33 |
 34 |     // Use CocoaAsyncSocket discovery for SSDP, as the standard network framework doesn't support when
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:49:23: warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     }
 48 |
 49 |     public static var defaultSubscriptionTimeout = 120
    |                       |- warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSubscriptionTimeout' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSubscriptionTimeout' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     public let controlUrl: URL
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:100:23: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 98 |                 // The network is usually still settling when the listener drops out.
 99 |                 try? await Task.sleep(nanoseconds: 1_000_000_000)
100 |                 await self?.startHTTPServer()
    |                       |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                       `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
101 |             }
102 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:116:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
114 |         // The discovery engine keeps its state on the main queue, like its socket callbacks.
115 |         Task { @MainActor in
116 |             await startHTTPServerIfNotRunning()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
117 |             try discoveryEngine.startDiscovery(forTypes: filteredTypes)
118 |             discoveryEngine.searchRequest()
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:124:13: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
122 |     public func stopDiscovery() {
123 |         Task { @MainActor in
124 |             discoveryEngine.stopDiscovery()
    |             |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |             `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
125 |             stopHTTPServer()
126 |             devices.removeAll(keepingCapacity: false)
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:184:38: warning: sending 'self.httpServer' risks causing data races; this is an error in the Swift 6 language mode
182 |
183 |             do {
184 |                 try await httpServer.start(port: port)
    |                                      |- warning: sending 'self.httpServer' risks causing data races; this is an error in the Swift 6 language mode
    |                                      `- note: sending main actor-isolated 'self.httpServer' to nonisolated callee risks causing data races between nonisolated and main actor-isolated uses
185 |
186 |                 // Binding is not instant, and discovery may have been stopped while it was underway.
[73/102] Compiling SwiftUPnP AVTransport1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/AV Profile/ContentDirectory1Service+DIDL.swift:203:16: warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
201 |
202 |     public let res: [DIDLRes]
203 |     public let desc: [DIDLDescription]
    |                `- warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
204 |
205 |     public let `class`: String
    :
238 | }
239 |
240 | public struct DIDLDescription: Codable, DynamicNodeDecoding {
    |               `- note: consider making struct 'DIDLDescription' conform to the 'Sendable' protocol
241 |     enum CodingKeys: String, CodingKey {
242 |         case id
[74/102] Compiling SwiftUPnP ConnectionManager1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/AV Profile/ContentDirectory1Service+DIDL.swift:203:16: warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
201 |
202 |     public let res: [DIDLRes]
203 |     public let desc: [DIDLDescription]
    |                `- warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
204 |
205 |     public let `class`: String
    :
238 | }
239 |
240 | public struct DIDLDescription: Codable, DynamicNodeDecoding {
    |               `- note: consider making struct 'DIDLDescription' conform to the 'Sendable' protocol
241 |     enum CodingKeys: String, CodingKey {
242 |         case id
[75/102] Compiling SwiftUPnP ContentDirectory1Service+DIDL.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/AV Profile/ContentDirectory1Service+DIDL.swift:203:16: warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
201 |
202 |     public let res: [DIDLRes]
203 |     public let desc: [DIDLDescription]
    |                `- warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
204 |
205 |     public let `class`: String
    :
238 | }
239 |
240 | public struct DIDLDescription: Codable, DynamicNodeDecoding {
    |               `- note: consider making struct 'DIDLDescription' conform to the 'Sendable' protocol
241 |     enum CodingKeys: String, CodingKey {
242 |         case id
[76/102] Compiling SwiftUPnP ContentDirectory1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/AV Profile/ContentDirectory1Service+DIDL.swift:203:16: warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
201 |
202 |     public let res: [DIDLRes]
203 |     public let desc: [DIDLDescription]
    |                `- warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
204 |
205 |     public let `class`: String
    :
238 | }
239 |
240 | public struct DIDLDescription: Codable, DynamicNodeDecoding {
    |               `- note: consider making struct 'DIDLDescription' conform to the 'Sendable' protocol
241 |     enum CodingKeys: String, CodingKey {
242 |         case id
[77/102] Emitting module SwiftUPnP
/Users/admin/builder/spi-builder-workspace/Source/Profiles/AV Profile/ContentDirectory1Service+DIDL.swift:203:16: warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
201 |
202 |     public let res: [DIDLRes]
203 |     public let desc: [DIDLDescription]
    |                `- warning: stored property 'desc' of 'Sendable'-conforming struct 'DIDLItem' has non-sendable type '[DIDLDescription]'; this is an error in the Swift 6 language mode
204 |
205 |     public let `class`: String
    :
238 | }
239 |
240 | public struct DIDLDescription: Codable, DynamicNodeDecoding {
    |               `- note: consider making struct 'DIDLDescription' conform to the 'Sendable' protocol
241 |     enum CodingKeys: String, CodingKey {
242 |         case id
/Users/admin/builder/spi-builder-workspace/Source/Support/IPHelper.swift:134:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
132 |
133 | extension Logger {
134 |     private static var subsystem = Bundle.main.bundleIdentifier!
    |                        |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 |
136 |     /// Logs the view cycles like viewDidLoad.
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:32:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
 29 | import os.log
 30 |
 31 | public class UPnPRegistry {
    |              `- note: class 'UPnPRegistry' does not conform to the 'Sendable' protocol
 32 |     public static let shared = UPnPRegistry()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 33 |
 34 |     // Use CocoaAsyncSocket discovery for SSDP, as the standard network framework doesn't support when
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:49:23: warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     }
 48 |
 49 |     public static var defaultSubscriptionTimeout = 120
    |                       |- warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSubscriptionTimeout' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSubscriptionTimeout' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     public let controlUrl: URL
[78/102] Compiling SwiftUPnP OpenHomeReceiver1Service.swift
[79/102] Compiling SwiftUPnP OpenHomeSender1Service.swift
[80/102] Compiling SwiftUPnP OpenHomeTime1Service.swift
[81/102] Compiling SwiftUPnP OpenHomeTransport1Service.swift
[82/102] Compiling SwiftUPnP OpenHomeOAuth1Service.swift
[83/102] Compiling SwiftUPnP OpenHomePins1Service.swift
[84/102] Compiling SwiftUPnP OpenHomePlaylist1Service+DIDL.swift
[85/102] Compiling SwiftUPnP OpenHomePlaylist1Service.swift
[86/102] Compiling SwiftUPnP RenderingControl1Service.swift
[87/102] Compiling SwiftUPnP OpenHomeConfig1Service.swift
[88/102] Compiling SwiftUPnP OpenHomeCredentials1Service.swift
[89/102] Compiling SwiftUPnP OpenHomeInfo1Service.swift
[90/102] Compiling SwiftUPnP SSDPDiscovery.swift
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:50:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
48 |                 Logger.swiftUPnP.error("\(error.localizedDescription)")
49 |             case .cancelled:
50 |                 self?.multicastGroup = nil
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
51 |                 self?.connectionGroup = nil
52 |             default:
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:58:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
56 |         connectionGroup.setReceiveHandler(maximumMessageSize: 65535, rejectOversizedMessages: true) { (message, content, isComplete) in
57 |             if let content = content {
58 |                 self.processData(content)
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
59 |             }
60 |         }
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPDiscovery.swift:60:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 58 |         guard let device = device(from: headers) else { return }
 59 |         if messageType == .unavailableNotification {
 60 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 61 |                 await UPnPRegistry.shared.remove(device)
    |                                                  `- note: closure captures 'device' which is accessible to code in the current task
 62 |             }
 63 |         }
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPDiscovery.swift:65:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 63 |         }
 64 |         else {
 65 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 66 |                 await UPnPRegistry.shared.add(device)
    |                                               `- note: closure captures 'device' which is accessible to code in the current task
 67 |             }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPDiscovery.swift:61:43: warning: sending 'device' risks causing data races; this is an error in the Swift 6 language mode
 59 |         if messageType == .unavailableNotification {
 60 |             Task {
 61 |                 await UPnPRegistry.shared.remove(device)
    |                                           |- warning: sending 'device' risks causing data races; this is an error in the Swift 6 language mode
    |                                           `- note: sending task-isolated 'device' to main actor-isolated instance method 'remove' risks causing data races between main actor-isolated and task-isolated uses
 62 |             }
 63 |         }
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPDiscovery.swift:66:43: warning: sending 'device' risks causing data races; this is an error in the Swift 6 language mode
 64 |         else {
 65 |             Task {
 66 |                 await UPnPRegistry.shared.add(device)
    |                                           |- warning: sending 'device' risks causing data races; this is an error in the Swift 6 language mode
    |                                           `- note: sending task-isolated 'device' to main actor-isolated instance method 'add' risks causing data races between main actor-isolated and task-isolated uses
 67 |             }
 68 |         }
[91/102] Compiling SwiftUPnP SSDPNetworkDiscovery.swift
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:50:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
48 |                 Logger.swiftUPnP.error("\(error.localizedDescription)")
49 |             case .cancelled:
50 |                 self?.multicastGroup = nil
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
51 |                 self?.connectionGroup = nil
52 |             default:
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:58:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
56 |         connectionGroup.setReceiveHandler(maximumMessageSize: 65535, rejectOversizedMessages: true) { (message, content, isComplete) in
57 |             if let content = content {
58 |                 self.processData(content)
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
59 |             }
60 |         }
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPDiscovery.swift:60:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 58 |         guard let device = device(from: headers) else { return }
 59 |         if messageType == .unavailableNotification {
 60 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 61 |                 await UPnPRegistry.shared.remove(device)
    |                                                  `- note: closure captures 'device' which is accessible to code in the current task
 62 |             }
 63 |         }
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPDiscovery.swift:65:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 63 |         }
 64 |         else {
 65 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 66 |                 await UPnPRegistry.shared.add(device)
    |                                               `- note: closure captures 'device' which is accessible to code in the current task
 67 |             }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPDiscovery.swift:61:43: warning: sending 'device' risks causing data races; this is an error in the Swift 6 language mode
 59 |         if messageType == .unavailableNotification {
 60 |             Task {
 61 |                 await UPnPRegistry.shared.remove(device)
    |                                           |- warning: sending 'device' risks causing data races; this is an error in the Swift 6 language mode
    |                                           `- note: sending task-isolated 'device' to main actor-isolated instance method 'remove' risks causing data races between main actor-isolated and task-isolated uses
 62 |             }
 63 |         }
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPDiscovery.swift:66:43: warning: sending 'device' risks causing data races; this is an error in the Swift 6 language mode
 64 |         else {
 65 |             Task {
 66 |                 await UPnPRegistry.shared.add(device)
    |                                           |- warning: sending 'device' risks causing data races; this is an error in the Swift 6 language mode
    |                                           `- note: sending task-isolated 'device' to main actor-isolated instance method 'add' risks causing data races between main actor-isolated and task-isolated uses
 67 |             }
 68 |         }
[92/102] Compiling SwiftUPnP UserAgentGenerator.swift
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:50:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
48 |                 Logger.swiftUPnP.error("\(error.localizedDescription)")
49 |             case .cancelled:
50 |                 self?.multicastGroup = nil
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
51 |                 self?.connectionGroup = nil
52 |             default:
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:58:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
56 |         connectionGroup.setReceiveHandler(maximumMessageSize: 65535, rejectOversizedMessages: true) { (message, content, isComplete) in
57 |             if let content = content {
58 |                 self.processData(content)
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
59 |             }
60 |         }
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPDiscovery.swift:60:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 58 |         guard let device = device(from: headers) else { return }
 59 |         if messageType == .unavailableNotification {
 60 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 61 |                 await UPnPRegistry.shared.remove(device)
    |                                                  `- note: closure captures 'device' which is accessible to code in the current task
 62 |             }
 63 |         }
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPDiscovery.swift:65:18: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 63 |         }
 64 |         else {
 65 |             Task {
    |                  `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
 66 |                 await UPnPRegistry.shared.add(device)
    |                                               `- note: closure captures 'device' which is accessible to code in the current task
 67 |             }
 68 |         }
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPDiscovery.swift:61:43: warning: sending 'device' risks causing data races; this is an error in the Swift 6 language mode
 59 |         if messageType == .unavailableNotification {
 60 |             Task {
 61 |                 await UPnPRegistry.shared.remove(device)
    |                                           |- warning: sending 'device' risks causing data races; this is an error in the Swift 6 language mode
    |                                           `- note: sending task-isolated 'device' to main actor-isolated instance method 'remove' risks causing data races between main actor-isolated and task-isolated uses
 62 |             }
 63 |         }
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPDiscovery.swift:66:43: warning: sending 'device' risks causing data races; this is an error in the Swift 6 language mode
 64 |         else {
 65 |             Task {
 66 |                 await UPnPRegistry.shared.add(device)
    |                                           |- warning: sending 'device' risks causing data races; this is an error in the Swift 6 language mode
    |                                           `- note: sending task-isolated 'device' to main actor-isolated instance method 'add' risks causing data races between main actor-isolated and task-isolated uses
 67 |             }
 68 |         }
[93/102] Compiling SwiftUPnP HTTPServer.swift
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:177:13: warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 75 | /// Failure of a running listener is reported through ``onFailure``: without it a listener that stops
 76 | /// accepting connections is invisible from the outside, and the events simply stop arriving.
 77 | final class HTTPServer {
    |             `- note: class 'HTTPServer' does not conform to the 'Sendable' protocol
 78 |     typealias Handler = (HTTPServerRequest) -> HTTPServerResponse
 79 |
    :
175 |
176 |         listener.newConnectionHandler = { [weak self] connection in
177 |             self?.accept(connection)
    |             `- warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
178 |         }
179 |         listener.stateUpdateHandler = { [weak self] state in
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:180:13: warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 75 | /// Failure of a running listener is reported through ``onFailure``: without it a listener that stops
 76 | /// accepting connections is invisible from the outside, and the events simply stop arriving.
 77 | final class HTTPServer {
    |             `- note: class 'HTTPServer' does not conform to the 'Sendable' protocol
 78 |     typealias Handler = (HTTPServerRequest) -> HTTPServerResponse
 79 |
    :
178 |         }
179 |         listener.stateUpdateHandler = { [weak self] state in
180 |             self?.handleStateChange(state, of: listener, port: port)
    |             `- warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
181 |         }
182 |
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:233:17: warning: capture of 'leave' with non-sendable type 'Once' in a '@Sendable' closure; this is an error in the Swift 6 language mode
231 |         listener.stateUpdateHandler = { state in
232 |             if case .cancelled = state {
233 |                 leave.run()
    |                 `- warning: capture of 'leave' with non-sendable type 'Once' in a '@Sendable' closure; this is an error in the Swift 6 language mode
234 |             }
235 |         }
    :
333 |
334 | /// Runs its work exactly once, for whichever of two things that both mean 'done' happens first.
335 | private final class Once {
    |                     `- note: class 'Once' does not conform to the 'Sendable' protocol
336 |     private let lock = NSLock()
337 |     private var work: (() -> Void)?
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:240:13: warning: capture of 'leave' with non-sendable type 'Once' in a '@Sendable' closure
238 |         // A listener that never reports being cancelled may not hold up the next start forever.
239 |         queue.asyncAfter(deadline: .now() + 2) {
240 |             leave.run()
    |             `- warning: capture of 'leave' with non-sendable type 'Once' in a '@Sendable' closure
241 |         }
242 |     }
    :
333 |
334 | /// Runs its work exactly once, for whichever of two things that both mean 'done' happens first.
335 | private final class Once {
    |                     `- note: class 'Once' does not conform to the 'Sendable' protocol
336 |     private let lock = NSLock()
337 |     private var work: (() -> Void)?
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:384:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
353 | /// One connection from a device, which may carry more than one request: devices keep the connection
354 | /// open between notifications.
355 | private final class HTTPConnection {
    |                     `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
356 |     private static let maximumHeaderSize = 64 * 1024
357 |     private static let maximumBodySize = 8 * 1024 * 1024
    :
382 |             switch state {
383 |             case .failed, .cancelled:
384 |                 self?.close()
    |                 `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
385 |             default:
386 |                 break
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:395:20: warning: capture of 'self' with non-sendable type 'HTTPConnection' in a '@Sendable' closure
353 | /// One connection from a device, which may carry more than one request: devices keep the connection
354 | /// open between notifications.
355 | private final class HTTPConnection {
    |                     `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
356 |     private static let maximumHeaderSize = 64 * 1024
357 |     private static let maximumBodySize = 8 * 1024 * 1024
    :
393 |     func close() {
394 |         queue.async { [self] in
395 |             guard !closed else { return }
    |                    `- warning: capture of 'self' with non-sendable type 'HTTPConnection' in a '@Sendable' closure
396 |             closed = true
397 |
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:408:23: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
353 | /// One connection from a device, which may carry more than one request: devices keep the connection
354 | /// open between notifications.
355 | private final class HTTPConnection {
    |                     `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
356 |     private static let maximumHeaderSize = 64 * 1024
357 |     private static let maximumBodySize = 8 * 1024 * 1024
    :
406 |     private func receive() {
407 |         connection.receive(minimumIncompleteLength: 1, maximumLength: 64 * 1024) { [weak self] data, _, isComplete, error in
408 |             guard let self, !self.closed else { return }
    |                       `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
409 |
410 |             if let data, data.isEmpty == false {
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:474:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
353 | /// One connection from a device, which may carry more than one request: devices keep the connection
354 | /// open between notifications.
355 | private final class HTTPConnection {
    |                     `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
356 |     private static let maximumHeaderSize = 64 * 1024
357 |     private static let maximumBodySize = 8 * 1024 * 1024
    :
472 |         connection.send(content: data, completion: .contentProcessed { [weak self] error in
473 |             if error != nil || keepAlive == false {
474 |                 self?.close()
    |                 `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
475 |             }
476 |         })
/Users/admin/builder/spi-builder-workspace/Source/Support/IPHelper.swift:134:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
132 |
133 | extension Logger {
134 |     private static var subsystem = Bundle.main.bundleIdentifier!
    |                        |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 |
136 |     /// Logs the view cycles like viewDidLoad.
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:40:17: warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 |             }
39 |             continuation.onTermination = { continuation in
40 |                 cancellable.cancel()
   |                 `- warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
41 |             }
42 |         }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:29:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
27 |
28 | import Foundation
29 | import Combine
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
30 |
31 | internal extension Publisher where Failure == Never {
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:60:17: warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
58 |             }
59 |             continuation.onTermination = { continuation in
60 |                 cancellable.cancel()
   |                 `- warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 |             }
62 |         }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:37:31: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
35 |                 continuation.finish()
36 |             } receiveValue: { value in
37 |                  continuation.yield(value)
   |                               |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
38 |             }
39 |             continuation.onTermination = { continuation in
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:57:31: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
55 |                 }
56 |             } receiveValue: { value in
57 |                  continuation.yield(value)
   |                               |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
58 |             }
59 |             continuation.onTermination = { continuation in
[94/102] Compiling SwiftUPnP IPHelper.swift
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:177:13: warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 75 | /// Failure of a running listener is reported through ``onFailure``: without it a listener that stops
 76 | /// accepting connections is invisible from the outside, and the events simply stop arriving.
 77 | final class HTTPServer {
    |             `- note: class 'HTTPServer' does not conform to the 'Sendable' protocol
 78 |     typealias Handler = (HTTPServerRequest) -> HTTPServerResponse
 79 |
    :
175 |
176 |         listener.newConnectionHandler = { [weak self] connection in
177 |             self?.accept(connection)
    |             `- warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
178 |         }
179 |         listener.stateUpdateHandler = { [weak self] state in
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:180:13: warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 75 | /// Failure of a running listener is reported through ``onFailure``: without it a listener that stops
 76 | /// accepting connections is invisible from the outside, and the events simply stop arriving.
 77 | final class HTTPServer {
    |             `- note: class 'HTTPServer' does not conform to the 'Sendable' protocol
 78 |     typealias Handler = (HTTPServerRequest) -> HTTPServerResponse
 79 |
    :
178 |         }
179 |         listener.stateUpdateHandler = { [weak self] state in
180 |             self?.handleStateChange(state, of: listener, port: port)
    |             `- warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
181 |         }
182 |
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:233:17: warning: capture of 'leave' with non-sendable type 'Once' in a '@Sendable' closure; this is an error in the Swift 6 language mode
231 |         listener.stateUpdateHandler = { state in
232 |             if case .cancelled = state {
233 |                 leave.run()
    |                 `- warning: capture of 'leave' with non-sendable type 'Once' in a '@Sendable' closure; this is an error in the Swift 6 language mode
234 |             }
235 |         }
    :
333 |
334 | /// Runs its work exactly once, for whichever of two things that both mean 'done' happens first.
335 | private final class Once {
    |                     `- note: class 'Once' does not conform to the 'Sendable' protocol
336 |     private let lock = NSLock()
337 |     private var work: (() -> Void)?
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:240:13: warning: capture of 'leave' with non-sendable type 'Once' in a '@Sendable' closure
238 |         // A listener that never reports being cancelled may not hold up the next start forever.
239 |         queue.asyncAfter(deadline: .now() + 2) {
240 |             leave.run()
    |             `- warning: capture of 'leave' with non-sendable type 'Once' in a '@Sendable' closure
241 |         }
242 |     }
    :
333 |
334 | /// Runs its work exactly once, for whichever of two things that both mean 'done' happens first.
335 | private final class Once {
    |                     `- note: class 'Once' does not conform to the 'Sendable' protocol
336 |     private let lock = NSLock()
337 |     private var work: (() -> Void)?
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:384:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
353 | /// One connection from a device, which may carry more than one request: devices keep the connection
354 | /// open between notifications.
355 | private final class HTTPConnection {
    |                     `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
356 |     private static let maximumHeaderSize = 64 * 1024
357 |     private static let maximumBodySize = 8 * 1024 * 1024
    :
382 |             switch state {
383 |             case .failed, .cancelled:
384 |                 self?.close()
    |                 `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
385 |             default:
386 |                 break
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:395:20: warning: capture of 'self' with non-sendable type 'HTTPConnection' in a '@Sendable' closure
353 | /// One connection from a device, which may carry more than one request: devices keep the connection
354 | /// open between notifications.
355 | private final class HTTPConnection {
    |                     `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
356 |     private static let maximumHeaderSize = 64 * 1024
357 |     private static let maximumBodySize = 8 * 1024 * 1024
    :
393 |     func close() {
394 |         queue.async { [self] in
395 |             guard !closed else { return }
    |                    `- warning: capture of 'self' with non-sendable type 'HTTPConnection' in a '@Sendable' closure
396 |             closed = true
397 |
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:408:23: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
353 | /// One connection from a device, which may carry more than one request: devices keep the connection
354 | /// open between notifications.
355 | private final class HTTPConnection {
    |                     `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
356 |     private static let maximumHeaderSize = 64 * 1024
357 |     private static let maximumBodySize = 8 * 1024 * 1024
    :
406 |     private func receive() {
407 |         connection.receive(minimumIncompleteLength: 1, maximumLength: 64 * 1024) { [weak self] data, _, isComplete, error in
408 |             guard let self, !self.closed else { return }
    |                       `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
409 |
410 |             if let data, data.isEmpty == false {
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:474:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
353 | /// One connection from a device, which may carry more than one request: devices keep the connection
354 | /// open between notifications.
355 | private final class HTTPConnection {
    |                     `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
356 |     private static let maximumHeaderSize = 64 * 1024
357 |     private static let maximumBodySize = 8 * 1024 * 1024
    :
472 |         connection.send(content: data, completion: .contentProcessed { [weak self] error in
473 |             if error != nil || keepAlive == false {
474 |                 self?.close()
    |                 `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
475 |             }
476 |         })
/Users/admin/builder/spi-builder-workspace/Source/Support/IPHelper.swift:134:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
132 |
133 | extension Logger {
134 |     private static var subsystem = Bundle.main.bundleIdentifier!
    |                        |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 |
136 |     /// Logs the view cycles like viewDidLoad.
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:40:17: warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 |             }
39 |             continuation.onTermination = { continuation in
40 |                 cancellable.cancel()
   |                 `- warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
41 |             }
42 |         }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:29:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
27 |
28 | import Foundation
29 | import Combine
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
30 |
31 | internal extension Publisher where Failure == Never {
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:60:17: warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
58 |             }
59 |             continuation.onTermination = { continuation in
60 |                 cancellable.cancel()
   |                 `- warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 |             }
62 |         }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:37:31: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
35 |                 continuation.finish()
36 |             } receiveValue: { value in
37 |                  continuation.yield(value)
   |                               |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
38 |             }
39 |             continuation.onTermination = { continuation in
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:57:31: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
55 |                 }
56 |             } receiveValue: { value in
57 |                  continuation.yield(value)
   |                               |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
58 |             }
59 |             continuation.onTermination = { continuation in
[95/102] Compiling SwiftUPnP Publisher+Stream.swift
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:177:13: warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 75 | /// Failure of a running listener is reported through ``onFailure``: without it a listener that stops
 76 | /// accepting connections is invisible from the outside, and the events simply stop arriving.
 77 | final class HTTPServer {
    |             `- note: class 'HTTPServer' does not conform to the 'Sendable' protocol
 78 |     typealias Handler = (HTTPServerRequest) -> HTTPServerResponse
 79 |
    :
175 |
176 |         listener.newConnectionHandler = { [weak self] connection in
177 |             self?.accept(connection)
    |             `- warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
178 |         }
179 |         listener.stateUpdateHandler = { [weak self] state in
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:180:13: warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 75 | /// Failure of a running listener is reported through ``onFailure``: without it a listener that stops
 76 | /// accepting connections is invisible from the outside, and the events simply stop arriving.
 77 | final class HTTPServer {
    |             `- note: class 'HTTPServer' does not conform to the 'Sendable' protocol
 78 |     typealias Handler = (HTTPServerRequest) -> HTTPServerResponse
 79 |
    :
178 |         }
179 |         listener.stateUpdateHandler = { [weak self] state in
180 |             self?.handleStateChange(state, of: listener, port: port)
    |             `- warning: capture of 'self' with non-sendable type 'HTTPServer?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
181 |         }
182 |
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:233:17: warning: capture of 'leave' with non-sendable type 'Once' in a '@Sendable' closure; this is an error in the Swift 6 language mode
231 |         listener.stateUpdateHandler = { state in
232 |             if case .cancelled = state {
233 |                 leave.run()
    |                 `- warning: capture of 'leave' with non-sendable type 'Once' in a '@Sendable' closure; this is an error in the Swift 6 language mode
234 |             }
235 |         }
    :
333 |
334 | /// Runs its work exactly once, for whichever of two things that both mean 'done' happens first.
335 | private final class Once {
    |                     `- note: class 'Once' does not conform to the 'Sendable' protocol
336 |     private let lock = NSLock()
337 |     private var work: (() -> Void)?
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:240:13: warning: capture of 'leave' with non-sendable type 'Once' in a '@Sendable' closure
238 |         // A listener that never reports being cancelled may not hold up the next start forever.
239 |         queue.asyncAfter(deadline: .now() + 2) {
240 |             leave.run()
    |             `- warning: capture of 'leave' with non-sendable type 'Once' in a '@Sendable' closure
241 |         }
242 |     }
    :
333 |
334 | /// Runs its work exactly once, for whichever of two things that both mean 'done' happens first.
335 | private final class Once {
    |                     `- note: class 'Once' does not conform to the 'Sendable' protocol
336 |     private let lock = NSLock()
337 |     private var work: (() -> Void)?
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:384:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
353 | /// One connection from a device, which may carry more than one request: devices keep the connection
354 | /// open between notifications.
355 | private final class HTTPConnection {
    |                     `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
356 |     private static let maximumHeaderSize = 64 * 1024
357 |     private static let maximumBodySize = 8 * 1024 * 1024
    :
382 |             switch state {
383 |             case .failed, .cancelled:
384 |                 self?.close()
    |                 `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
385 |             default:
386 |                 break
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:395:20: warning: capture of 'self' with non-sendable type 'HTTPConnection' in a '@Sendable' closure
353 | /// One connection from a device, which may carry more than one request: devices keep the connection
354 | /// open between notifications.
355 | private final class HTTPConnection {
    |                     `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
356 |     private static let maximumHeaderSize = 64 * 1024
357 |     private static let maximumBodySize = 8 * 1024 * 1024
    :
393 |     func close() {
394 |         queue.async { [self] in
395 |             guard !closed else { return }
    |                    `- warning: capture of 'self' with non-sendable type 'HTTPConnection' in a '@Sendable' closure
396 |             closed = true
397 |
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:408:23: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
353 | /// One connection from a device, which may carry more than one request: devices keep the connection
354 | /// open between notifications.
355 | private final class HTTPConnection {
    |                     `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
356 |     private static let maximumHeaderSize = 64 * 1024
357 |     private static let maximumBodySize = 8 * 1024 * 1024
    :
406 |     private func receive() {
407 |         connection.receive(minimumIncompleteLength: 1, maximumLength: 64 * 1024) { [weak self] data, _, isComplete, error in
408 |             guard let self, !self.closed else { return }
    |                       `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
409 |
410 |             if let data, data.isEmpty == false {
/Users/admin/builder/spi-builder-workspace/Source/Support/HTTPServer.swift:474:17: warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
353 | /// One connection from a device, which may carry more than one request: devices keep the connection
354 | /// open between notifications.
355 | private final class HTTPConnection {
    |                     `- note: class 'HTTPConnection' does not conform to the 'Sendable' protocol
356 |     private static let maximumHeaderSize = 64 * 1024
357 |     private static let maximumBodySize = 8 * 1024 * 1024
    :
472 |         connection.send(content: data, completion: .contentProcessed { [weak self] error in
473 |             if error != nil || keepAlive == false {
474 |                 self?.close()
    |                 `- warning: capture of 'self' with non-sendable type 'HTTPConnection?' in a '@Sendable' closure
475 |             }
476 |         })
/Users/admin/builder/spi-builder-workspace/Source/Support/IPHelper.swift:134:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
132 |
133 | extension Logger {
134 |     private static var subsystem = Bundle.main.bundleIdentifier!
    |                        |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 |
136 |     /// Logs the view cycles like viewDidLoad.
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:40:17: warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
38 |             }
39 |             continuation.onTermination = { continuation in
40 |                 cancellable.cancel()
   |                 `- warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
41 |             }
42 |         }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:29:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
27 |
28 | import Foundation
29 | import Combine
   | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Combine'
30 |
31 | internal extension Publisher where Failure == Never {
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:60:17: warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
58 |             }
59 |             continuation.onTermination = { continuation in
60 |                 cancellable.cancel()
   |                 `- warning: capture of 'cancellable' with non-sendable type 'AnyCancellable' in a '@Sendable' closure; this is an error in the Swift 6 language mode
61 |             }
62 |         }
Combine.AnyCancellable:2:20: note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 1 | @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
 2 | final public class AnyCancellable : Cancellable, Hashable {
   |                    `- note: class 'AnyCancellable' does not conform to the 'Sendable' protocol
 3 |     public init(_ cancel: @escaping () -> Void)
 4 |     public init<C>(_ canceller: C) where C : Cancellable
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:37:31: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
35 |                 continuation.finish()
36 |             } receiveValue: { value in
37 |                  continuation.yield(value)
   |                               |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
38 |             }
39 |             continuation.onTermination = { continuation in
/Users/admin/builder/spi-builder-workspace/Source/Support/Publisher+Stream.swift:57:31: warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
55 |                 }
56 |             } receiveValue: { value in
57 |                  continuation.yield(value)
   |                               |- warning: sending 'value' risks causing data races; this is an error in the Swift 6 language mode
   |                               `- note: task-isolated 'value' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses
58 |             }
59 |             continuation.onTermination = { continuation in
[96/102] Compiling SwiftUPnP OpenHomePlaylistManager1Service.swift
[97/102] Compiling SwiftUPnP OpenHomeProduct1Service.swift
[98/102] Compiling SwiftUPnP OpenHomeProduct2Service.swift
[99/102] Compiling SwiftUPnP OpenHomeRadio1Service.swift
[100/102] Compiling SwiftUPnP OpenHomeVolume1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPCocoaAsyncSocketDiscovery.swift:158:13: warning: capture of 'self' with non-sendable type 'SSDPCocoaAsyncSocketDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 31 | import os.log
 32 |
 33 | class SSDPCocoaAsyncSocketDiscovery: SSDPDiscovery {
    |       `- note: class 'SSDPCocoaAsyncSocketDiscovery' does not conform to the 'Sendable' protocol
 34 |     private var multicastSocket: GCDAsyncUdpSocket?
 35 |     /// Bumped on every start and stop, so work scheduled for an earlier session (repeated searches, reopening the
    :
156 |             }
157 |             guard path.status == .satisfied else { return }
158 |             self?.reopenSocket(after: 1)
    |             `- warning: capture of 'self' with non-sendable type 'SSDPCocoaAsyncSocketDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
159 |         }
160 |         monitor.start(queue: DispatchQueue.main)
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPCocoaAsyncSocketDiscovery.swift:153:20: warning: reference to captured var 'isFirstUpdate' in concurrently-executing code; this is an error in the Swift 6 language mode
151 |         monitor.pathUpdateHandler = { [weak self] path in
152 |             // The first update only reports the current situation.
153 |             guard !isFirstUpdate else {
    |                    `- warning: reference to captured var 'isFirstUpdate' in concurrently-executing code; this is an error in the Swift 6 language mode
154 |                 isFirstUpdate = false
155 |                 return
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPCocoaAsyncSocketDiscovery.swift:154:17: warning: mutation of captured var 'isFirstUpdate' in concurrently-executing code; this is an error in the Swift 6 language mode
152 |             // The first update only reports the current situation.
153 |             guard !isFirstUpdate else {
154 |                 isFirstUpdate = false
    |                 `- warning: mutation of captured var 'isFirstUpdate' in concurrently-executing code; this is an error in the Swift 6 language mode
155 |                 return
156 |             }
[101/102] Compiling SwiftUPnP OpenHomeVolume2Service.swift
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPCocoaAsyncSocketDiscovery.swift:158:13: warning: capture of 'self' with non-sendable type 'SSDPCocoaAsyncSocketDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 31 | import os.log
 32 |
 33 | class SSDPCocoaAsyncSocketDiscovery: SSDPDiscovery {
    |       `- note: class 'SSDPCocoaAsyncSocketDiscovery' does not conform to the 'Sendable' protocol
 34 |     private var multicastSocket: GCDAsyncUdpSocket?
 35 |     /// Bumped on every start and stop, so work scheduled for an earlier session (repeated searches, reopening the
    :
156 |             }
157 |             guard path.status == .satisfied else { return }
158 |             self?.reopenSocket(after: 1)
    |             `- warning: capture of 'self' with non-sendable type 'SSDPCocoaAsyncSocketDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
159 |         }
160 |         monitor.start(queue: DispatchQueue.main)
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPCocoaAsyncSocketDiscovery.swift:153:20: warning: reference to captured var 'isFirstUpdate' in concurrently-executing code; this is an error in the Swift 6 language mode
151 |         monitor.pathUpdateHandler = { [weak self] path in
152 |             // The first update only reports the current situation.
153 |             guard !isFirstUpdate else {
    |                    `- warning: reference to captured var 'isFirstUpdate' in concurrently-executing code; this is an error in the Swift 6 language mode
154 |                 isFirstUpdate = false
155 |                 return
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPCocoaAsyncSocketDiscovery.swift:154:17: warning: mutation of captured var 'isFirstUpdate' in concurrently-executing code; this is an error in the Swift 6 language mode
152 |             // The first update only reports the current situation.
153 |             guard !isFirstUpdate else {
154 |                 isFirstUpdate = false
    |                 `- warning: mutation of captured var 'isFirstUpdate' in concurrently-executing code; this is an error in the Swift 6 language mode
155 |                 return
156 |             }
[102/102] Compiling SwiftUPnP SSDPCocoaAsyncSocketDiscovery.swift
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPCocoaAsyncSocketDiscovery.swift:158:13: warning: capture of 'self' with non-sendable type 'SSDPCocoaAsyncSocketDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
 31 | import os.log
 32 |
 33 | class SSDPCocoaAsyncSocketDiscovery: SSDPDiscovery {
    |       `- note: class 'SSDPCocoaAsyncSocketDiscovery' does not conform to the 'Sendable' protocol
 34 |     private var multicastSocket: GCDAsyncUdpSocket?
 35 |     /// Bumped on every start and stop, so work scheduled for an earlier session (repeated searches, reopening the
    :
156 |             }
157 |             guard path.status == .satisfied else { return }
158 |             self?.reopenSocket(after: 1)
    |             `- warning: capture of 'self' with non-sendable type 'SSDPCocoaAsyncSocketDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
159 |         }
160 |         monitor.start(queue: DispatchQueue.main)
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPCocoaAsyncSocketDiscovery.swift:153:20: warning: reference to captured var 'isFirstUpdate' in concurrently-executing code; this is an error in the Swift 6 language mode
151 |         monitor.pathUpdateHandler = { [weak self] path in
152 |             // The first update only reports the current situation.
153 |             guard !isFirstUpdate else {
    |                    `- warning: reference to captured var 'isFirstUpdate' in concurrently-executing code; this is an error in the Swift 6 language mode
154 |                 isFirstUpdate = false
155 |                 return
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPCocoaAsyncSocketDiscovery.swift:154:17: warning: mutation of captured var 'isFirstUpdate' in concurrently-executing code; this is an error in the Swift 6 language mode
152 |             // The first update only reports the current situation.
153 |             guard !isFirstUpdate else {
154 |                 isFirstUpdate = false
    |                 `- warning: mutation of captured var 'isFirstUpdate' in concurrently-executing code; this is an error in the Swift 6 language mode
155 |                 return
156 |             }
Build complete! (28.31s)
Fetching https://github.com/robbiehanson/CocoaAsyncSocket.git
[1/6440] Fetching cocoaasyncsocket
Fetched https://github.com/robbiehanson/CocoaAsyncSocket.git from cache (1.57s)
Fetching https://github.com/WeTransfer/Mocker.git
Fetching https://github.com/CoreOffice/XMLCoder.git
[1/1906] Fetching mocker
[2/12035] Fetching mocker, xmlcoder
Fetched https://github.com/WeTransfer/Mocker.git from cache (1.10s)
[1419/10129] Fetching xmlcoder
Fetched https://github.com/CoreOffice/XMLCoder.git from cache (2.16s)
Computing version for https://github.com/WeTransfer/Mocker.git
Computed https://github.com/WeTransfer/Mocker.git at 3.0.2 (2.77s)
Computing version for https://github.com/CoreOffice/XMLCoder.git
Computed https://github.com/CoreOffice/XMLCoder.git at 0.18.2 (0.60s)
Creating working copy for https://github.com/WeTransfer/Mocker.git
Working copy of https://github.com/WeTransfer/Mocker.git resolved at 3.0.2
Creating working copy for https://github.com/CoreOffice/XMLCoder.git
Working copy of https://github.com/CoreOffice/XMLCoder.git resolved at 0.18.2
Creating working copy for https://github.com/robbiehanson/CocoaAsyncSocket.git
Working copy of https://github.com/robbiehanson/CocoaAsyncSocket.git resolved at master (5ddba5e)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "xmlcoder",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.13.1",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/CoreOffice/XMLCoder.git"
    },
    {
      "identity" : "cocoaasyncsocket",
      "requirement" : {
        "branch" : [
          "master"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/robbiehanson/CocoaAsyncSocket.git"
    },
    {
      "identity" : "mocker",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "3.0.0",
            "upper_bound" : "4.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/WeTransfer/Mocker.git"
    }
  ],
  "manifest_display_name" : "SwiftUPnP",
  "name" : "SwiftUPnP",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "watchos",
      "version" : "10.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftUPnP",
      "targets" : [
        "SwiftUPnP"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "UPnPCodeGenerator",
      "targets" : [
        "UPnPCodeGenerator"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "UPnPCodeGenerator",
      "module_type" : "SwiftTarget",
      "name" : "UPnPCodeGenerator",
      "path" : "CodeGenerator",
      "product_dependencies" : [
        "XMLCoder"
      ],
      "product_memberships" : [
        "UPnPCodeGenerator"
      ],
      "sources" : [
        "ServiceDefinition.swift",
        "SourceGenerator.swift",
        "main.swift"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "SwiftUPnPTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftUPnPTests",
      "path" : "Tests/SwiftUPnPTests",
      "product_dependencies" : [
        "Mocker"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/AVTransport1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/ConnectionManager1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/ContentDirectory1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/MediaServerDevice.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeConfig1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeCredentials1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeInfo1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeOAuth1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomePins1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomePlaylist1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomePlaylistManager1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeProduct1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeProduct2Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeRadio1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeReceiver1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeRendererDevice.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeSender1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeTime1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeTransport1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeVolume1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/OpenHomeVolume2Service.xml",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/SwiftUPnPTests/Resources/RenderingControl1Service.xml",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "HTTPServerTests.swift",
        "SSDPDiscoveryTests.swift",
        "SwiftUPnPTests.swift",
        "UPnPSubscriptionTests.swift"
      ],
      "target_dependencies" : [
        "SwiftUPnP"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftUPnP",
      "module_type" : "SwiftTarget",
      "name" : "SwiftUPnP",
      "path" : "Source",
      "product_dependencies" : [
        "XMLCoder",
        "CocoaAsyncSocket"
      ],
      "product_memberships" : [
        "SwiftUPnP"
      ],
      "sources" : [
        "Profiles/AV Profile/AVTransport1Service.swift",
        "Profiles/AV Profile/ConnectionManager1Service.swift",
        "Profiles/AV Profile/ContentDirectory1Service+DIDL.swift",
        "Profiles/AV Profile/ContentDirectory1Service.swift",
        "Profiles/AV Profile/RenderingControl1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeConfig1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeCredentials1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeInfo1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeOAuth1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePins1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylist1Service+DIDL.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylist1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylistManager1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeProduct1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeProduct2Service.swift",
        "Profiles/OpenHome Profile/OpenHomeRadio1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeReceiver1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeSender1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeTime1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeTransport1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeVolume1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeVolume2Service.swift",
        "SSDP/SSDPCocoaAsyncSocketDiscovery.swift",
        "SSDP/SSDPDiscovery.swift",
        "SSDP/SSDPNetworkDiscovery.swift",
        "SSDP/UserAgentGenerator.swift",
        "Support/HTTPServer.swift",
        "Support/IPHelper.swift",
        "Support/Publisher+Stream.swift",
        "Support/XMLParserSupport.swift",
        "UPnP/UPnPDevice.swift",
        "UPnP/UPnPDeviceDefinition.swift",
        "UPnP/UPnPRegistry.swift",
        "UPnP/UPnPService.swift",
        "UPnP/UPnPServiceDefinition.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.