Build Information
Successful build of Flow, reference master (b452ec
), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 13:51:50 UTC.
Swift 6 data race errors: 20
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
52 | }
53 |
54 | private var trackerKey = false
| |- warning: var 'trackerKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'trackerKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'trackerKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:20:13: warning: var 'nextKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | typealias Key = UInt64
20 | private var nextKey: Key = 0
| |- warning: var 'nextKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | private var nextRawKeyMutex = pthread_mutex_t()
22 | private var nextKeyMutex: PThreadMutex = {
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:21:13: warning: var 'nextRawKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 | typealias Key = UInt64
20 | private var nextKey: Key = 0
21 | private var nextRawKeyMutex = pthread_mutex_t()
| |- warning: var 'nextRawKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextRawKeyMutex' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextRawKeyMutex' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | private var nextKeyMutex: PThreadMutex = {
23 | let mutex = PThreadMutex(&nextRawKeyMutex)
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:22:13: warning: var 'nextKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | private var nextKey: Key = 0
21 | private var nextRawKeyMutex = pthread_mutex_t()
22 | private var nextKeyMutex: PThreadMutex = {
| |- warning: var 'nextKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextKeyMutex' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextKeyMutex' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | let mutex = PThreadMutex(&nextRawKeyMutex)
24 | mutex.initialize()
[4/46] Compiling Flow UIControls+Extensions.swift
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:20:13: warning: var 'nextKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | typealias Key = UInt64
20 | private var nextKey: Key = 0
| |- warning: var 'nextKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | private var nextRawKeyMutex = pthread_mutex_t()
22 | private var nextKeyMutex: PThreadMutex = {
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:21:13: warning: var 'nextRawKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 | typealias Key = UInt64
20 | private var nextKey: Key = 0
21 | private var nextRawKeyMutex = pthread_mutex_t()
| |- warning: var 'nextRawKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextRawKeyMutex' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextRawKeyMutex' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | private var nextKeyMutex: PThreadMutex = {
23 | let mutex = PThreadMutex(&nextRawKeyMutex)
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:22:13: warning: var 'nextKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | private var nextKey: Key = 0
21 | private var nextRawKeyMutex = pthread_mutex_t()
22 | private var nextKeyMutex: PThreadMutex = {
| |- warning: var 'nextKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextKeyMutex' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextKeyMutex' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | let mutex = PThreadMutex(&nextRawKeyMutex)
24 | mutex.initialize()
[5/46] Compiling Flow UIView+EditingMenu.swift
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:20:13: warning: var 'nextKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | typealias Key = UInt64
20 | private var nextKey: Key = 0
| |- warning: var 'nextKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | private var nextRawKeyMutex = pthread_mutex_t()
22 | private var nextKeyMutex: PThreadMutex = {
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:21:13: warning: var 'nextRawKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 | typealias Key = UInt64
20 | private var nextKey: Key = 0
21 | private var nextRawKeyMutex = pthread_mutex_t()
| |- warning: var 'nextRawKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextRawKeyMutex' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextRawKeyMutex' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | private var nextKeyMutex: PThreadMutex = {
23 | let mutex = PThreadMutex(&nextRawKeyMutex)
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:22:13: warning: var 'nextKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | private var nextKey: Key = 0
21 | private var nextRawKeyMutex = pthread_mutex_t()
22 | private var nextKeyMutex: PThreadMutex = {
| |- warning: var 'nextKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextKeyMutex' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextKeyMutex' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | let mutex = PThreadMutex(&nextRawKeyMutex)
24 | mutex.initialize()
[6/46] Compiling Flow UIView+Signal.swift
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:20:13: warning: var 'nextKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | typealias Key = UInt64
20 | private var nextKey: Key = 0
| |- warning: var 'nextKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | private var nextRawKeyMutex = pthread_mutex_t()
22 | private var nextKeyMutex: PThreadMutex = {
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:21:13: warning: var 'nextRawKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 | typealias Key = UInt64
20 | private var nextKey: Key = 0
21 | private var nextRawKeyMutex = pthread_mutex_t()
| |- warning: var 'nextRawKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextRawKeyMutex' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextRawKeyMutex' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | private var nextKeyMutex: PThreadMutex = {
23 | let mutex = PThreadMutex(&nextRawKeyMutex)
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:22:13: warning: var 'nextKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | private var nextKey: Key = 0
21 | private var nextRawKeyMutex = pthread_mutex_t()
22 | private var nextKeyMutex: PThreadMutex = {
| |- warning: var 'nextKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextKeyMutex' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextKeyMutex' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | let mutex = PThreadMutex(&nextRawKeyMutex)
24 | mutex.initialize()
[7/46] Compiling Flow Utilities.swift
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:20:13: warning: var 'nextKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
18 |
19 | typealias Key = UInt64
20 | private var nextKey: Key = 0
| |- warning: var 'nextKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
21 | private var nextRawKeyMutex = pthread_mutex_t()
22 | private var nextKeyMutex: PThreadMutex = {
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:21:13: warning: var 'nextRawKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
19 | typealias Key = UInt64
20 | private var nextKey: Key = 0
21 | private var nextRawKeyMutex = pthread_mutex_t()
| |- warning: var 'nextRawKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextRawKeyMutex' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextRawKeyMutex' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
22 | private var nextKeyMutex: PThreadMutex = {
23 | let mutex = PThreadMutex(&nextRawKeyMutex)
/Users/admin/builder/spi-builder-workspace/Flow/Utilities.swift:22:13: warning: var 'nextKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
20 | private var nextKey: Key = 0
21 | private var nextRawKeyMutex = pthread_mutex_t()
22 | private var nextKeyMutex: PThreadMutex = {
| |- warning: var 'nextKeyMutex' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'nextKeyMutex' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'nextKeyMutex' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
23 | let mutex = PThreadMutex(&nextRawKeyMutex)
24 | mutex.initialize()
[8/46] Compiling Flow Signal+KeyValueObserving.swift
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:29:17: warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
27 | self.init(getValue: { object[keyPath: keyPath] }, options: .shared, onInternalEvent: { callback in
28 | let token = object.observe(keyPath, options: .new) { _, _ in
29 | callback(.value(object[keyPath: keyPath]))
| |- warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
30 | }
31 | return Disposer { _ = token } // Hold on to reference
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:29:33: warning: capture of 'object' with non-sendable type 'O' in a '@Sendable' closure
24 | public extension CoreSignal where Kind == Read {
25 | /// Creates a new instance observing the property at `keyPath` of `object` using key value observing (KVO).
26 | convenience init<O: _KeyValueCodingAndObserving>(object: O, keyPath: KeyPath<O, Value>) {
| `- note: consider making generic parameter 'O' conform to the 'Sendable' protocol
27 | self.init(getValue: { object[keyPath: keyPath] }, options: .shared, onInternalEvent: { callback in
28 | let token = object.observe(keyPath, options: .new) { _, _ in
29 | callback(.value(object[keyPath: keyPath]))
| `- warning: capture of 'object' with non-sendable type 'O' in a '@Sendable' closure
30 | }
31 | return Disposer { _ = token } // Hold on to reference
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:29:49: warning: capture of 'keyPath' with non-sendable type 'KeyPath<O, Value>' in a '@Sendable' closure
27 | self.init(getValue: { object[keyPath: keyPath] }, options: .shared, onInternalEvent: { callback in
28 | let token = object.observe(keyPath, options: .new) { _, _ in
29 | callback(.value(object[keyPath: keyPath]))
| `- warning: capture of 'keyPath' with non-sendable type 'KeyPath<O, Value>' in a '@Sendable' closure
30 | }
31 | return Disposer { _ = token } // Hold on to reference
Swift.KeyPath:1:14: note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
1 | public class KeyPath<Root, Value> : PartialKeyPath<Root> {
| `- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
2 | @objc deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:45:25: warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
43 | onInternalEvent: { callback in
44 | let token = object.observe(keyPath, options: .new) { newObject, _ in
45 | callback(.value(newObject[keyPath: keyPath]))
| |- warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
46 | }
47 | return Disposer { _ = token } // Hold on to reference
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:45:60: warning: capture of 'keyPath' with non-sendable type 'WritableKeyPath<O, Value>' in a '@Sendable' closure
43 | onInternalEvent: { callback in
44 | let token = object.observe(keyPath, options: .new) { newObject, _ in
45 | callback(.value(newObject[keyPath: keyPath]))
| `- warning: capture of 'keyPath' with non-sendable type 'WritableKeyPath<O, Value>' in a '@Sendable' closure
46 | }
47 | return Disposer { _ = token } // Hold on to reference
Swift.WritableKeyPath:1:14: note: generic class 'WritableKeyPath' does not conform to the 'Sendable' protocol
1 | public class WritableKeyPath<Root, Value> : KeyPath<Root, Value> {
| `- note: generic class 'WritableKeyPath' does not conform to the 'Sendable' protocol
2 | @objc deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Scheduling.swift:123:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
121 | private var disposable: Disposable?
122 | private var _mutex = pthread_mutex_t()
123 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
124 | private let scheduler: Scheduler
125 | private var callback: ((EventType<Value>) -> Void)?
[9/46] Compiling Flow Signal+Listeners.swift
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:29:17: warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
27 | self.init(getValue: { object[keyPath: keyPath] }, options: .shared, onInternalEvent: { callback in
28 | let token = object.observe(keyPath, options: .new) { _, _ in
29 | callback(.value(object[keyPath: keyPath]))
| |- warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
30 | }
31 | return Disposer { _ = token } // Hold on to reference
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:29:33: warning: capture of 'object' with non-sendable type 'O' in a '@Sendable' closure
24 | public extension CoreSignal where Kind == Read {
25 | /// Creates a new instance observing the property at `keyPath` of `object` using key value observing (KVO).
26 | convenience init<O: _KeyValueCodingAndObserving>(object: O, keyPath: KeyPath<O, Value>) {
| `- note: consider making generic parameter 'O' conform to the 'Sendable' protocol
27 | self.init(getValue: { object[keyPath: keyPath] }, options: .shared, onInternalEvent: { callback in
28 | let token = object.observe(keyPath, options: .new) { _, _ in
29 | callback(.value(object[keyPath: keyPath]))
| `- warning: capture of 'object' with non-sendable type 'O' in a '@Sendable' closure
30 | }
31 | return Disposer { _ = token } // Hold on to reference
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:29:49: warning: capture of 'keyPath' with non-sendable type 'KeyPath<O, Value>' in a '@Sendable' closure
27 | self.init(getValue: { object[keyPath: keyPath] }, options: .shared, onInternalEvent: { callback in
28 | let token = object.observe(keyPath, options: .new) { _, _ in
29 | callback(.value(object[keyPath: keyPath]))
| `- warning: capture of 'keyPath' with non-sendable type 'KeyPath<O, Value>' in a '@Sendable' closure
30 | }
31 | return Disposer { _ = token } // Hold on to reference
Swift.KeyPath:1:14: note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
1 | public class KeyPath<Root, Value> : PartialKeyPath<Root> {
| `- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
2 | @objc deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:45:25: warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
43 | onInternalEvent: { callback in
44 | let token = object.observe(keyPath, options: .new) { newObject, _ in
45 | callback(.value(newObject[keyPath: keyPath]))
| |- warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
46 | }
47 | return Disposer { _ = token } // Hold on to reference
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:45:60: warning: capture of 'keyPath' with non-sendable type 'WritableKeyPath<O, Value>' in a '@Sendable' closure
43 | onInternalEvent: { callback in
44 | let token = object.observe(keyPath, options: .new) { newObject, _ in
45 | callback(.value(newObject[keyPath: keyPath]))
| `- warning: capture of 'keyPath' with non-sendable type 'WritableKeyPath<O, Value>' in a '@Sendable' closure
46 | }
47 | return Disposer { _ = token } // Hold on to reference
Swift.WritableKeyPath:1:14: note: generic class 'WritableKeyPath' does not conform to the 'Sendable' protocol
1 | public class WritableKeyPath<Root, Value> : KeyPath<Root, Value> {
| `- note: generic class 'WritableKeyPath' does not conform to the 'Sendable' protocol
2 | @objc deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Scheduling.swift:123:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
121 | private var disposable: Disposable?
122 | private var _mutex = pthread_mutex_t()
123 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
124 | private let scheduler: Scheduler
125 | private var callback: ((EventType<Value>) -> Void)?
[10/46] Compiling Flow Signal+Scheduling.swift
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:29:17: warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
27 | self.init(getValue: { object[keyPath: keyPath] }, options: .shared, onInternalEvent: { callback in
28 | let token = object.observe(keyPath, options: .new) { _, _ in
29 | callback(.value(object[keyPath: keyPath]))
| |- warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
30 | }
31 | return Disposer { _ = token } // Hold on to reference
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:29:33: warning: capture of 'object' with non-sendable type 'O' in a '@Sendable' closure
24 | public extension CoreSignal where Kind == Read {
25 | /// Creates a new instance observing the property at `keyPath` of `object` using key value observing (KVO).
26 | convenience init<O: _KeyValueCodingAndObserving>(object: O, keyPath: KeyPath<O, Value>) {
| `- note: consider making generic parameter 'O' conform to the 'Sendable' protocol
27 | self.init(getValue: { object[keyPath: keyPath] }, options: .shared, onInternalEvent: { callback in
28 | let token = object.observe(keyPath, options: .new) { _, _ in
29 | callback(.value(object[keyPath: keyPath]))
| `- warning: capture of 'object' with non-sendable type 'O' in a '@Sendable' closure
30 | }
31 | return Disposer { _ = token } // Hold on to reference
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:29:49: warning: capture of 'keyPath' with non-sendable type 'KeyPath<O, Value>' in a '@Sendable' closure
27 | self.init(getValue: { object[keyPath: keyPath] }, options: .shared, onInternalEvent: { callback in
28 | let token = object.observe(keyPath, options: .new) { _, _ in
29 | callback(.value(object[keyPath: keyPath]))
| `- warning: capture of 'keyPath' with non-sendable type 'KeyPath<O, Value>' in a '@Sendable' closure
30 | }
31 | return Disposer { _ = token } // Hold on to reference
Swift.KeyPath:1:14: note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
1 | public class KeyPath<Root, Value> : PartialKeyPath<Root> {
| `- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
2 | @objc deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:45:25: warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
43 | onInternalEvent: { callback in
44 | let token = object.observe(keyPath, options: .new) { newObject, _ in
45 | callback(.value(newObject[keyPath: keyPath]))
| |- warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
46 | }
47 | return Disposer { _ = token } // Hold on to reference
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:45:60: warning: capture of 'keyPath' with non-sendable type 'WritableKeyPath<O, Value>' in a '@Sendable' closure
43 | onInternalEvent: { callback in
44 | let token = object.observe(keyPath, options: .new) { newObject, _ in
45 | callback(.value(newObject[keyPath: keyPath]))
| `- warning: capture of 'keyPath' with non-sendable type 'WritableKeyPath<O, Value>' in a '@Sendable' closure
46 | }
47 | return Disposer { _ = token } // Hold on to reference
Swift.WritableKeyPath:1:14: note: generic class 'WritableKeyPath' does not conform to the 'Sendable' protocol
1 | public class WritableKeyPath<Root, Value> : KeyPath<Root, Value> {
| `- note: generic class 'WritableKeyPath' does not conform to the 'Sendable' protocol
2 | @objc deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Scheduling.swift:123:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
121 | private var disposable: Disposable?
122 | private var _mutex = pthread_mutex_t()
123 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
124 | private let scheduler: Scheduler
125 | private var callback: ((EventType<Value>) -> Void)?
[11/46] Compiling Flow Signal+Transforms.swift
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:29:17: warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
27 | self.init(getValue: { object[keyPath: keyPath] }, options: .shared, onInternalEvent: { callback in
28 | let token = object.observe(keyPath, options: .new) { _, _ in
29 | callback(.value(object[keyPath: keyPath]))
| |- warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
30 | }
31 | return Disposer { _ = token } // Hold on to reference
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:29:33: warning: capture of 'object' with non-sendable type 'O' in a '@Sendable' closure
24 | public extension CoreSignal where Kind == Read {
25 | /// Creates a new instance observing the property at `keyPath` of `object` using key value observing (KVO).
26 | convenience init<O: _KeyValueCodingAndObserving>(object: O, keyPath: KeyPath<O, Value>) {
| `- note: consider making generic parameter 'O' conform to the 'Sendable' protocol
27 | self.init(getValue: { object[keyPath: keyPath] }, options: .shared, onInternalEvent: { callback in
28 | let token = object.observe(keyPath, options: .new) { _, _ in
29 | callback(.value(object[keyPath: keyPath]))
| `- warning: capture of 'object' with non-sendable type 'O' in a '@Sendable' closure
30 | }
31 | return Disposer { _ = token } // Hold on to reference
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:29:49: warning: capture of 'keyPath' with non-sendable type 'KeyPath<O, Value>' in a '@Sendable' closure
27 | self.init(getValue: { object[keyPath: keyPath] }, options: .shared, onInternalEvent: { callback in
28 | let token = object.observe(keyPath, options: .new) { _, _ in
29 | callback(.value(object[keyPath: keyPath]))
| `- warning: capture of 'keyPath' with non-sendable type 'KeyPath<O, Value>' in a '@Sendable' closure
30 | }
31 | return Disposer { _ = token } // Hold on to reference
Swift.KeyPath:1:14: note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
1 | public class KeyPath<Root, Value> : PartialKeyPath<Root> {
| `- note: generic class 'KeyPath' does not conform to the 'Sendable' protocol
2 | @objc deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:45:25: warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
43 | onInternalEvent: { callback in
44 | let token = object.observe(keyPath, options: .new) { newObject, _ in
45 | callback(.value(newObject[keyPath: keyPath]))
| |- warning: capture of 'callback' with non-sendable type '(Event<Value>) -> Void' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
46 | }
47 | return Disposer { _ = token } // Hold on to reference
/Users/admin/builder/spi-builder-workspace/Flow/Signal+KeyValueObserving.swift:45:60: warning: capture of 'keyPath' with non-sendable type 'WritableKeyPath<O, Value>' in a '@Sendable' closure
43 | onInternalEvent: { callback in
44 | let token = object.observe(keyPath, options: .new) { newObject, _ in
45 | callback(.value(newObject[keyPath: keyPath]))
| `- warning: capture of 'keyPath' with non-sendable type 'WritableKeyPath<O, Value>' in a '@Sendable' closure
46 | }
47 | return Disposer { _ = token } // Hold on to reference
Swift.WritableKeyPath:1:14: note: generic class 'WritableKeyPath' does not conform to the 'Sendable' protocol
1 | public class WritableKeyPath<Root, Value> : KeyPath<Root, Value> {
| `- note: generic class 'WritableKeyPath' does not conform to the 'Sendable' protocol
2 | @objc deinit
3 | }
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Scheduling.swift:123:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
121 | private var disposable: Disposable?
122 | private var _mutex = pthread_mutex_t()
123 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
124 | private let scheduler: Scheduler
125 | private var callback: ((EventType<Value>) -> Void)?
[12/46] Compiling Flow ReadSignal.swift
/Users/admin/builder/spi-builder-workspace/Flow/ReadWriteSignal.swift:89:13: warning: var 'propertySetterKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
87 | }
88 |
89 | private var propertySetterKey = false
| |- warning: var 'propertySetterKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'propertySetterKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'propertySetterKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
90 |
91 | internal extension SignalProvider {
[13/46] Compiling Flow ReadWriteSignal.swift
/Users/admin/builder/spi-builder-workspace/Flow/ReadWriteSignal.swift:89:13: warning: var 'propertySetterKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
87 | }
88 |
89 | private var propertySetterKey = false
| |- warning: var 'propertySetterKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'propertySetterKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'propertySetterKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
90 |
91 | internal extension SignalProvider {
[14/46] Compiling Flow Recursive.swift
/Users/admin/builder/spi-builder-workspace/Flow/ReadWriteSignal.swift:89:13: warning: var 'propertySetterKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
87 | }
88 |
89 | private var propertySetterKey = false
| |- warning: var 'propertySetterKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'propertySetterKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'propertySetterKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
90 |
91 | internal extension SignalProvider {
[15/46] Compiling Flow Result.swift
/Users/admin/builder/spi-builder-workspace/Flow/ReadWriteSignal.swift:89:13: warning: var 'propertySetterKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
87 | }
88 |
89 | private var propertySetterKey = false
| |- warning: var 'propertySetterKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'propertySetterKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'propertySetterKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
90 |
91 | internal extension SignalProvider {
[16/46] Compiling Flow Future+Additions.swift
/Users/admin/builder/spi-builder-workspace/Flow/Future.swift:323:5: warning: var 'futureUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
321 | }
322 |
323 | var futureUnitTestAliveCount: Int32 = 0
| |- warning: var 'futureUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'futureUnitTestAliveCount' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'futureUnitTestAliveCount' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
324 |
325 | func memPrint(_ str: String, _ count: Int32) {
/Users/admin/builder/spi-builder-workspace/Flow/Future.swift:330:38: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
328 |
329 | private extension Future {
330 | var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
331 |
332 | private var protectedState: State {
[17/46] Compiling Flow Future+Combiners.swift
/Users/admin/builder/spi-builder-workspace/Flow/Future.swift:323:5: warning: var 'futureUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
321 | }
322 |
323 | var futureUnitTestAliveCount: Int32 = 0
| |- warning: var 'futureUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'futureUnitTestAliveCount' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'futureUnitTestAliveCount' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
324 |
325 | func memPrint(_ str: String, _ count: Int32) {
/Users/admin/builder/spi-builder-workspace/Flow/Future.swift:330:38: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
328 |
329 | private extension Future {
330 | var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
331 |
332 | private var protectedState: State {
[18/46] Compiling Flow Future+Signal.swift
/Users/admin/builder/spi-builder-workspace/Flow/Future.swift:323:5: warning: var 'futureUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
321 | }
322 |
323 | var futureUnitTestAliveCount: Int32 = 0
| |- warning: var 'futureUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'futureUnitTestAliveCount' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'futureUnitTestAliveCount' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
324 |
325 | func memPrint(_ str: String, _ count: Int32) {
/Users/admin/builder/spi-builder-workspace/Flow/Future.swift:330:38: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
328 |
329 | private extension Future {
330 | var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
331 |
332 | private var protectedState: State {
[19/46] Compiling Flow Future.swift
/Users/admin/builder/spi-builder-workspace/Flow/Future.swift:323:5: warning: var 'futureUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
321 | }
322 |
323 | var futureUnitTestAliveCount: Int32 = 0
| |- warning: var 'futureUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'futureUnitTestAliveCount' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'futureUnitTestAliveCount' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
324 |
325 | func memPrint(_ str: String, _ count: Int32) {
/Users/admin/builder/spi-builder-workspace/Flow/Future.swift:330:38: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
328 |
329 | private extension Future {
330 | var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
331 |
332 | private var protectedState: State {
[20/46] Compiling Flow Either.swift
/Users/admin/builder/spi-builder-workspace/Flow/Enablable.swift:64:13: warning: var 'enablesAutomaticallyKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | private var enablesAutomaticallyKey = false
| |- warning: var 'enablesAutomaticallyKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enablesAutomaticallyKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'enablesAutomaticallyKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
65 |
[21/46] Compiling Flow Enablable.swift
/Users/admin/builder/spi-builder-workspace/Flow/Enablable.swift:64:13: warning: var 'enablesAutomaticallyKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | private var enablesAutomaticallyKey = false
| |- warning: var 'enablesAutomaticallyKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enablesAutomaticallyKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'enablesAutomaticallyKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
65 |
[22/46] Compiling Flow Event.swift
/Users/admin/builder/spi-builder-workspace/Flow/Enablable.swift:64:13: warning: var 'enablesAutomaticallyKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | private var enablesAutomaticallyKey = false
| |- warning: var 'enablesAutomaticallyKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enablesAutomaticallyKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'enablesAutomaticallyKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
65 |
[23/46] Compiling Flow EventType.swift
/Users/admin/builder/spi-builder-workspace/Flow/Enablable.swift:64:13: warning: var 'enablesAutomaticallyKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | private var enablesAutomaticallyKey = false
| |- warning: var 'enablesAutomaticallyKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enablesAutomaticallyKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'enablesAutomaticallyKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
65 |
[24/46] Compiling Flow FiniteSignal.swift
/Users/admin/builder/spi-builder-workspace/Flow/Enablable.swift:64:13: warning: var 'enablesAutomaticallyKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
62 | }
63 |
64 | private var enablesAutomaticallyKey = false
| |- warning: var 'enablesAutomaticallyKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enablesAutomaticallyKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'enablesAutomaticallyKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
65 |
[25/46] Compiling Flow Signal+Utilities.swift
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Utilities.swift:54:13: warning: var 'trackerKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 | }
53 |
54 | private var trackerKey = false
| |- warning: var 'trackerKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'trackerKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'trackerKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Utilities.swift:15:95: warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
12 | /// Returns a signal for notifications named `name`.
13 | func signal(forName name: Notification.Name?, object: Any? = nil) -> Signal<Notification> {
14 | return Signal(onValue: { callback in
| `- note: parameter 'callback' is implicitly non-sendable
15 | let observer = self.addObserver(forName: name, object: object, queue: nil, using: callback)
| `- warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
16 | return Disposer {
17 | self.removeObserver(observer)
[26/46] Compiling Flow Signal.swift
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Utilities.swift:54:13: warning: var 'trackerKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 | }
53 |
54 | private var trackerKey = false
| |- warning: var 'trackerKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'trackerKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'trackerKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Utilities.swift:15:95: warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
12 | /// Returns a signal for notifications named `name`.
13 | func signal(forName name: Notification.Name?, object: Any? = nil) -> Signal<Notification> {
14 | return Signal(onValue: { callback in
| `- note: parameter 'callback' is implicitly non-sendable
15 | let observer = self.addObserver(forName: name, object: object, queue: nil, using: callback)
| `- warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
16 | return Disposer {
17 | self.removeObserver(observer)
[27/46] Compiling Flow SignalProvider.swift
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Utilities.swift:54:13: warning: var 'trackerKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 | }
53 |
54 | private var trackerKey = false
| |- warning: var 'trackerKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'trackerKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'trackerKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Utilities.swift:15:95: warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
12 | /// Returns a signal for notifications named `name`.
13 | func signal(forName name: Notification.Name?, object: Any? = nil) -> Signal<Notification> {
14 | return Signal(onValue: { callback in
| `- note: parameter 'callback' is implicitly non-sendable
15 | let observer = self.addObserver(forName: name, object: object, queue: nil, using: callback)
| `- warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
16 | return Disposer {
17 | self.removeObserver(observer)
[28/46] Compiling Flow TargetActionable.swift
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Utilities.swift:54:13: warning: var 'trackerKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
52 | }
53 |
54 | private var trackerKey = false
| |- warning: var 'trackerKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'trackerKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'trackerKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 |
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Utilities.swift:15:95: warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
12 | /// Returns a signal for notifications named `name`.
13 | func signal(forName name: Notification.Name?, object: Any? = nil) -> Signal<Notification> {
14 | return Signal(onValue: { callback in
| `- note: parameter 'callback' is implicitly non-sendable
15 | let observer = self.addObserver(forName: name, object: object, queue: nil, using: callback)
| `- warning: passing non-sendable parameter 'callback' to function expecting a @Sendable closure
16 | return Disposer {
17 | self.removeObserver(observer)
[29/46] Compiling Flow FutureQueue.swift
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:200:5: warning: var 'queueItemUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
198 | }
199 |
200 | var queueItemUnitTestAliveCount: Int32 = 0
| |- warning: var 'queueItemUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'queueItemUnitTestAliveCount' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'queueItemUnitTestAliveCount' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
201 | var futureQueueUnitTestAliveCount: Int32 = 0
202 |
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:201:5: warning: var 'futureQueueUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
199 |
200 | var queueItemUnitTestAliveCount: Int32 = 0
201 | var futureQueueUnitTestAliveCount: Int32 = 0
| |- warning: var 'futureQueueUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'futureQueueUnitTestAliveCount' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'futureQueueUnitTestAliveCount' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
202 |
203 | /// QueueItem is generic on Output but we can't hold a queue of heterogeneous items, hence this helper protocol
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:172:38: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
170 |
171 | private extension FutureQueue {
172 | var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
173 | func lock() { mutex.lock() }
174 | func unlock() { mutex.unlock() }
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:234:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
232 | }
233 |
234 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
235 | private func lock() { mutex.lock() }
236 | private func unlock() { mutex.unlock() }
/Users/admin/builder/spi-builder-workspace/Flow/Locking.swift:14:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
12 | public final class Mutex {
13 | private var _mutex = pthread_mutex_t()
14 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
15 |
16 | public init() {
/Users/admin/builder/spi-builder-workspace/Flow/Locking.swift:90:50: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
88 | fileprivate var disposables = [Disposable]()
89 | private var _mutex = pthread_mutex_t()
90 | fileprivate var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
91 |
92 | init(state: State, callback: @escaping (Value) -> ()) {
/Users/admin/builder/spi-builder-workspace/Flow/OrderedCallbacker.swift:18:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
16 | private var callbacks: [Key: (OrderedValue, (CallbackValue) -> Future<()>)] = [:]
17 | private var _mutex = pthread_mutex_t()
18 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
19 |
20 | public init() {
[30/46] Compiling Flow HasEventListeners.swift
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:200:5: warning: var 'queueItemUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
198 | }
199 |
200 | var queueItemUnitTestAliveCount: Int32 = 0
| |- warning: var 'queueItemUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'queueItemUnitTestAliveCount' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'queueItemUnitTestAliveCount' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
201 | var futureQueueUnitTestAliveCount: Int32 = 0
202 |
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:201:5: warning: var 'futureQueueUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
199 |
200 | var queueItemUnitTestAliveCount: Int32 = 0
201 | var futureQueueUnitTestAliveCount: Int32 = 0
| |- warning: var 'futureQueueUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'futureQueueUnitTestAliveCount' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'futureQueueUnitTestAliveCount' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
202 |
203 | /// QueueItem is generic on Output but we can't hold a queue of heterogeneous items, hence this helper protocol
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:172:38: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
170 |
171 | private extension FutureQueue {
172 | var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
173 | func lock() { mutex.lock() }
174 | func unlock() { mutex.unlock() }
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:234:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
232 | }
233 |
234 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
235 | private func lock() { mutex.lock() }
236 | private func unlock() { mutex.unlock() }
/Users/admin/builder/spi-builder-workspace/Flow/Locking.swift:14:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
12 | public final class Mutex {
13 | private var _mutex = pthread_mutex_t()
14 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
15 |
16 | public init() {
/Users/admin/builder/spi-builder-workspace/Flow/Locking.swift:90:50: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
88 | fileprivate var disposables = [Disposable]()
89 | private var _mutex = pthread_mutex_t()
90 | fileprivate var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
91 |
92 | init(state: State, callback: @escaping (Value) -> ()) {
/Users/admin/builder/spi-builder-workspace/Flow/OrderedCallbacker.swift:18:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
16 | private var callbacks: [Key: (OrderedValue, (CallbackValue) -> Future<()>)] = [:]
17 | private var _mutex = pthread_mutex_t()
18 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
19 |
20 | public init() {
[31/46] Compiling Flow Locking.swift
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:200:5: warning: var 'queueItemUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
198 | }
199 |
200 | var queueItemUnitTestAliveCount: Int32 = 0
| |- warning: var 'queueItemUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'queueItemUnitTestAliveCount' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'queueItemUnitTestAliveCount' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
201 | var futureQueueUnitTestAliveCount: Int32 = 0
202 |
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:201:5: warning: var 'futureQueueUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
199 |
200 | var queueItemUnitTestAliveCount: Int32 = 0
201 | var futureQueueUnitTestAliveCount: Int32 = 0
| |- warning: var 'futureQueueUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'futureQueueUnitTestAliveCount' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'futureQueueUnitTestAliveCount' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
202 |
203 | /// QueueItem is generic on Output but we can't hold a queue of heterogeneous items, hence this helper protocol
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:172:38: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
170 |
171 | private extension FutureQueue {
172 | var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
173 | func lock() { mutex.lock() }
174 | func unlock() { mutex.unlock() }
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:234:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
232 | }
233 |
234 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
235 | private func lock() { mutex.lock() }
236 | private func unlock() { mutex.unlock() }
/Users/admin/builder/spi-builder-workspace/Flow/Locking.swift:14:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
12 | public final class Mutex {
13 | private var _mutex = pthread_mutex_t()
14 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
15 |
16 | public init() {
/Users/admin/builder/spi-builder-workspace/Flow/Locking.swift:90:50: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
88 | fileprivate var disposables = [Disposable]()
89 | private var _mutex = pthread_mutex_t()
90 | fileprivate var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
91 |
92 | init(state: State, callback: @escaping (Value) -> ()) {
/Users/admin/builder/spi-builder-workspace/Flow/OrderedCallbacker.swift:18:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
16 | private var callbacks: [Key: (OrderedValue, (CallbackValue) -> Future<()>)] = [:]
17 | private var _mutex = pthread_mutex_t()
18 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
19 |
20 | public init() {
[32/46] Compiling Flow OrderedCallbacker.swift
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:200:5: warning: var 'queueItemUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
198 | }
199 |
200 | var queueItemUnitTestAliveCount: Int32 = 0
| |- warning: var 'queueItemUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'queueItemUnitTestAliveCount' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'queueItemUnitTestAliveCount' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
201 | var futureQueueUnitTestAliveCount: Int32 = 0
202 |
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:201:5: warning: var 'futureQueueUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
199 |
200 | var queueItemUnitTestAliveCount: Int32 = 0
201 | var futureQueueUnitTestAliveCount: Int32 = 0
| |- warning: var 'futureQueueUnitTestAliveCount' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'futureQueueUnitTestAliveCount' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'futureQueueUnitTestAliveCount' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
202 |
203 | /// QueueItem is generic on Output but we can't hold a queue of heterogeneous items, hence this helper protocol
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:172:38: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
170 |
171 | private extension FutureQueue {
172 | var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
173 | func lock() { mutex.lock() }
174 | func unlock() { mutex.unlock() }
/Users/admin/builder/spi-builder-workspace/Flow/FutureQueue.swift:234:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
232 | }
233 |
234 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
235 | private func lock() { mutex.lock() }
236 | private func unlock() { mutex.unlock() }
/Users/admin/builder/spi-builder-workspace/Flow/Locking.swift:14:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
12 | public final class Mutex {
13 | private var _mutex = pthread_mutex_t()
14 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
15 |
16 | public init() {
/Users/admin/builder/spi-builder-workspace/Flow/Locking.swift:90:50: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
88 | fileprivate var disposables = [Disposable]()
89 | private var _mutex = pthread_mutex_t()
90 | fileprivate var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
91 |
92 | init(state: State, callback: @escaping (Value) -> ()) {
/Users/admin/builder/spi-builder-workspace/Flow/OrderedCallbacker.swift:18:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
16 | private var callbacks: [Key: (OrderedValue, (CallbackValue) -> Future<()>)] = [:]
17 | private var _mutex = pthread_mutex_t()
18 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
19 |
20 | public init() {
[33/46] Compiling Flow CancelBag.swift
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/CancelBag.swift:19:1: warning: extension declares a conformance of imported type 'Set' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
17 |
18 | @available(iOS 13.0, macOS 10.15, *)
19 | extension CancelBag: Cancellable {
| |- warning: extension declares a conformance of imported type 'Set' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
20 | /// Cancel all elements in the set.
21 | public func cancel() {
[34/46] Compiling Flow Disposable+Cancellable.swift
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/CancelBag.swift:19:1: warning: extension declares a conformance of imported type 'Set' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
17 |
18 | @available(iOS 13.0, macOS 10.15, *)
19 | extension CancelBag: Cancellable {
| |- warning: extension declares a conformance of imported type 'Set' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
20 | /// Cancel all elements in the set.
21 | public func cancel() {
[35/46] Compiling Flow Future+Combine.swift
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/CancelBag.swift:19:1: warning: extension declares a conformance of imported type 'Set' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
17 |
18 | @available(iOS 13.0, macOS 10.15, *)
19 | extension CancelBag: Cancellable {
| |- warning: extension declares a conformance of imported type 'Set' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
20 | /// Cancel all elements in the set.
21 | public func cancel() {
[36/46] Compiling Flow Publisher+Utilities.swift
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/CancelBag.swift:19:1: warning: extension declares a conformance of imported type 'Set' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
17 |
18 | @available(iOS 13.0, macOS 10.15, *)
19 | extension CancelBag: Cancellable {
| |- warning: extension declares a conformance of imported type 'Set' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
20 | /// Cancel all elements in the set.
21 | public func cancel() {
[37/46] Compiling Flow Signal+Combine.swift
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/CancelBag.swift:19:1: warning: extension declares a conformance of imported type 'Set' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
17 |
18 | @available(iOS 13.0, macOS 10.15, *)
19 | extension CancelBag: Cancellable {
| |- warning: extension declares a conformance of imported type 'Set' to imported protocol 'Cancellable'; this will not behave correctly if the owners of 'Swift' introduce this conformance in the future
| `- note: add '@retroactive' to silence this warning
20 | /// Cancel all elements in the set.
21 | public func cancel() {
[38/46] Compiling Flow Scheduler.swift
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:113:16: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
111 |
112 | /// A Scheduler that won't schedule any work and hence just call work() immediatly
113 | static let none = Scheduler(identifyingObject: 0 as AnyObject, async: { _ in fatalError() }, sync: { _ in fatalError() })
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
114 |
115 | /// A Scheduler that will schedule work on `DispatchQueue.main``
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:116:16: warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
114 |
115 | /// A Scheduler that will schedule work on `DispatchQueue.main``
116 | static let main = Scheduler(queue: .main)
| |- warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'main' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
117 |
118 | /// A Scheduler that will schedule work on a serial background queue
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:119:16: warning: static property 'background' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
117 |
118 | /// A Scheduler that will schedule work on a serial background queue
119 | static let background = Scheduler(label: "flow.background.serial")
| |- warning: static property 'background' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'background' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 |
121 | /// A Scheduler that will schedule work on a concurrent background queue
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:122:16: warning: static property 'concurrentBackground' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
120 |
121 | /// A Scheduler that will schedule work on a concurrent background queue
122 | static let concurrentBackground = Scheduler(label: "flow.background.concurrent", attributes: .concurrent)
| |- warning: static property 'concurrentBackground' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'concurrentBackground' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
123 | }
124 |
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:159:13: warning: var '_disposableAsync' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
157 | }
158 |
159 | private var _disposableAsync: (_ delay: TimeInterval, _ work: @escaping () -> ()) -> Disposable = Scheduler.concurrentBackground.disposableAsync
| |- warning: var '_disposableAsync' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_disposableAsync' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var '_disposableAsync' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
160 |
161 | /// Useful for overriding `disposableAsync` in unit test with simulatated delays
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:214:13: warning: let 'mainThreadState' is not concurrency-safe because non-'Sendable' type 'ThreadState' may have shared mutable state; this is an error in the Swift 6 language mode
196 | }
197 |
198 | final class ThreadState {
| `- note: class 'ThreadState' does not conform to the 'Sendable' protocol
199 | var scheduler: Scheduler?
200 | var syncScheduler: Scheduler?
:
212 | }
213 |
214 | private let mainThreadState = ThreadState()
| |- warning: let 'mainThreadState' is not concurrency-safe because non-'Sendable' type 'ThreadState' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'mainThreadState' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
215 | private var _threadStateKey: pthread_key_t = 0
216 | private var threadStateKey: pthread_key_t = {
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:215:13: warning: var '_threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
213 |
214 | private let mainThreadState = ThreadState()
215 | private var _threadStateKey: pthread_key_t = 0
| |- warning: var '_threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_threadStateKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var '_threadStateKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
216 | private var threadStateKey: pthread_key_t = {
217 | let cleanup: @convention(c) (UnsafeMutableRawPointer) -> Void = { state in
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:216:13: warning: var 'threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
214 | private let mainThreadState = ThreadState()
215 | private var _threadStateKey: pthread_key_t = 0
216 | private var threadStateKey: pthread_key_t = {
| |- warning: var 'threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'threadStateKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'threadStateKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
217 | let cleanup: @convention(c) (UnsafeMutableRawPointer) -> Void = { state in
218 | Unmanaged<ThreadState>.fromOpaque(state).release()
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:82:13: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
80 | func async(after delay: TimeInterval, execute work: @escaping () -> ()) {
81 | return DispatchQueue.concurrentBackground.asyncAfter(deadline: DispatchTime.now() + delay) {
82 | self.async(execute: work)
| `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:82:33: warning: capture of 'work' with non-sendable type '() -> ()' in a '@Sendable' closure
80 | func async(after delay: TimeInterval, execute work: @escaping () -> ()) {
81 | return DispatchQueue.concurrentBackground.asyncAfter(deadline: DispatchTime.now() + delay) {
82 | self.async(execute: work)
| |- warning: capture of 'work' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:128:75: warning: passing non-sendable parameter '$0' to function expecting a @Sendable closure
126 | /// Create a new instance that will schedule its work on the provided `queue`
127 | convenience init(queue: DispatchQueue) {
128 | self.init(identifyingObject: queue, async: { queue.async(execute: $0) }, sync: queue.sync)
| | `- warning: passing non-sendable parameter '$0' to function expecting a @Sendable closure
| `- note: parameter '$0' is implicitly non-sendable
129 | }
130 |
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:28:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SignalOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Options used to customize the behaviours of constructed signals.
12 | public struct SignalOptions: OptionSet {
| `- note: consider making struct 'SignalOptions' conform to the 'Sendable' protocol
13 | public let rawValue: Int
14 | public init(rawValue: Int) {
:
26 | /// Shared signals are useful when the work performed when registering a callback is relatively expensive.
27 | /// If the work performed when registering a callback is trivial, it might be more efficient to not setup the signal to be shared.
28 | static let shared = SignalOptions(rawValue: 1<<0)
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SignalOptions' 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
29 |
30 | /// Defaults to `[ .shared ]`
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:31:16: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'SignalOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Options used to customize the behaviours of constructed signals.
12 | public struct SignalOptions: OptionSet {
| `- note: consider making struct 'SignalOptions' conform to the 'Sendable' protocol
13 | public let rawValue: Int
14 | public init(rawValue: Int) {
:
29 |
30 | /// Defaults to `[ .shared ]`
31 | static let `default`: SignalOptions = [ .shared ]
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'SignalOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
32 | }
33 |
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:116:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
114 |
115 | private var _mutex = pthread_mutex_t()
116 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
117 |
118 | init(shared: SharedState<Value>? = nil, getValue: (() -> Value)?, callback: @escaping (EventType<Value>) -> Void) {
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:296:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
294 | private let getValue: (() -> Value)?
295 | private var _mutex = pthread_mutex_t()
296 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
297 |
298 | typealias Callback = (EventType<Value>) -> Void
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Debug.swift:49:13: warning: var 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
47 |
48 | private let dateFormat = "HH:mm:ss.SSS"
49 | private var dateFormatter: DateFormatter = {
| |- warning: var 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'dateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
50 | let dateFormatter = DateFormatter()
51 | dateFormatter.dateFormat = dateFormat
[39/46] Compiling Flow Signal+Combiners.swift
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:113:16: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
111 |
112 | /// A Scheduler that won't schedule any work and hence just call work() immediatly
113 | static let none = Scheduler(identifyingObject: 0 as AnyObject, async: { _ in fatalError() }, sync: { _ in fatalError() })
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
114 |
115 | /// A Scheduler that will schedule work on `DispatchQueue.main``
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:116:16: warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
114 |
115 | /// A Scheduler that will schedule work on `DispatchQueue.main``
116 | static let main = Scheduler(queue: .main)
| |- warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'main' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
117 |
118 | /// A Scheduler that will schedule work on a serial background queue
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:119:16: warning: static property 'background' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
117 |
118 | /// A Scheduler that will schedule work on a serial background queue
119 | static let background = Scheduler(label: "flow.background.serial")
| |- warning: static property 'background' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'background' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 |
121 | /// A Scheduler that will schedule work on a concurrent background queue
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:122:16: warning: static property 'concurrentBackground' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
120 |
121 | /// A Scheduler that will schedule work on a concurrent background queue
122 | static let concurrentBackground = Scheduler(label: "flow.background.concurrent", attributes: .concurrent)
| |- warning: static property 'concurrentBackground' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'concurrentBackground' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
123 | }
124 |
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:159:13: warning: var '_disposableAsync' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
157 | }
158 |
159 | private var _disposableAsync: (_ delay: TimeInterval, _ work: @escaping () -> ()) -> Disposable = Scheduler.concurrentBackground.disposableAsync
| |- warning: var '_disposableAsync' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_disposableAsync' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var '_disposableAsync' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
160 |
161 | /// Useful for overriding `disposableAsync` in unit test with simulatated delays
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:214:13: warning: let 'mainThreadState' is not concurrency-safe because non-'Sendable' type 'ThreadState' may have shared mutable state; this is an error in the Swift 6 language mode
196 | }
197 |
198 | final class ThreadState {
| `- note: class 'ThreadState' does not conform to the 'Sendable' protocol
199 | var scheduler: Scheduler?
200 | var syncScheduler: Scheduler?
:
212 | }
213 |
214 | private let mainThreadState = ThreadState()
| |- warning: let 'mainThreadState' is not concurrency-safe because non-'Sendable' type 'ThreadState' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'mainThreadState' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
215 | private var _threadStateKey: pthread_key_t = 0
216 | private var threadStateKey: pthread_key_t = {
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:215:13: warning: var '_threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
213 |
214 | private let mainThreadState = ThreadState()
215 | private var _threadStateKey: pthread_key_t = 0
| |- warning: var '_threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_threadStateKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var '_threadStateKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
216 | private var threadStateKey: pthread_key_t = {
217 | let cleanup: @convention(c) (UnsafeMutableRawPointer) -> Void = { state in
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:216:13: warning: var 'threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
214 | private let mainThreadState = ThreadState()
215 | private var _threadStateKey: pthread_key_t = 0
216 | private var threadStateKey: pthread_key_t = {
| |- warning: var 'threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'threadStateKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'threadStateKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
217 | let cleanup: @convention(c) (UnsafeMutableRawPointer) -> Void = { state in
218 | Unmanaged<ThreadState>.fromOpaque(state).release()
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:82:13: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
80 | func async(after delay: TimeInterval, execute work: @escaping () -> ()) {
81 | return DispatchQueue.concurrentBackground.asyncAfter(deadline: DispatchTime.now() + delay) {
82 | self.async(execute: work)
| `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:82:33: warning: capture of 'work' with non-sendable type '() -> ()' in a '@Sendable' closure
80 | func async(after delay: TimeInterval, execute work: @escaping () -> ()) {
81 | return DispatchQueue.concurrentBackground.asyncAfter(deadline: DispatchTime.now() + delay) {
82 | self.async(execute: work)
| |- warning: capture of 'work' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:128:75: warning: passing non-sendable parameter '$0' to function expecting a @Sendable closure
126 | /// Create a new instance that will schedule its work on the provided `queue`
127 | convenience init(queue: DispatchQueue) {
128 | self.init(identifyingObject: queue, async: { queue.async(execute: $0) }, sync: queue.sync)
| | `- warning: passing non-sendable parameter '$0' to function expecting a @Sendable closure
| `- note: parameter '$0' is implicitly non-sendable
129 | }
130 |
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:28:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SignalOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Options used to customize the behaviours of constructed signals.
12 | public struct SignalOptions: OptionSet {
| `- note: consider making struct 'SignalOptions' conform to the 'Sendable' protocol
13 | public let rawValue: Int
14 | public init(rawValue: Int) {
:
26 | /// Shared signals are useful when the work performed when registering a callback is relatively expensive.
27 | /// If the work performed when registering a callback is trivial, it might be more efficient to not setup the signal to be shared.
28 | static let shared = SignalOptions(rawValue: 1<<0)
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SignalOptions' 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
29 |
30 | /// Defaults to `[ .shared ]`
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:31:16: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'SignalOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Options used to customize the behaviours of constructed signals.
12 | public struct SignalOptions: OptionSet {
| `- note: consider making struct 'SignalOptions' conform to the 'Sendable' protocol
13 | public let rawValue: Int
14 | public init(rawValue: Int) {
:
29 |
30 | /// Defaults to `[ .shared ]`
31 | static let `default`: SignalOptions = [ .shared ]
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'SignalOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
32 | }
33 |
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:116:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
114 |
115 | private var _mutex = pthread_mutex_t()
116 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
117 |
118 | init(shared: SharedState<Value>? = nil, getValue: (() -> Value)?, callback: @escaping (EventType<Value>) -> Void) {
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:296:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
294 | private let getValue: (() -> Value)?
295 | private var _mutex = pthread_mutex_t()
296 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
297 |
298 | typealias Callback = (EventType<Value>) -> Void
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Debug.swift:49:13: warning: var 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
47 |
48 | private let dateFormat = "HH:mm:ss.SSS"
49 | private var dateFormatter: DateFormatter = {
| |- warning: var 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'dateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
50 | let dateFormatter = DateFormatter()
51 | dateFormatter.dateFormat = dateFormat
[40/46] Compiling Flow Signal+Construction.swift
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:113:16: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
111 |
112 | /// A Scheduler that won't schedule any work and hence just call work() immediatly
113 | static let none = Scheduler(identifyingObject: 0 as AnyObject, async: { _ in fatalError() }, sync: { _ in fatalError() })
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
114 |
115 | /// A Scheduler that will schedule work on `DispatchQueue.main``
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:116:16: warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
114 |
115 | /// A Scheduler that will schedule work on `DispatchQueue.main``
116 | static let main = Scheduler(queue: .main)
| |- warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'main' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
117 |
118 | /// A Scheduler that will schedule work on a serial background queue
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:119:16: warning: static property 'background' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
117 |
118 | /// A Scheduler that will schedule work on a serial background queue
119 | static let background = Scheduler(label: "flow.background.serial")
| |- warning: static property 'background' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'background' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 |
121 | /// A Scheduler that will schedule work on a concurrent background queue
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:122:16: warning: static property 'concurrentBackground' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
120 |
121 | /// A Scheduler that will schedule work on a concurrent background queue
122 | static let concurrentBackground = Scheduler(label: "flow.background.concurrent", attributes: .concurrent)
| |- warning: static property 'concurrentBackground' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'concurrentBackground' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
123 | }
124 |
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:159:13: warning: var '_disposableAsync' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
157 | }
158 |
159 | private var _disposableAsync: (_ delay: TimeInterval, _ work: @escaping () -> ()) -> Disposable = Scheduler.concurrentBackground.disposableAsync
| |- warning: var '_disposableAsync' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_disposableAsync' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var '_disposableAsync' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
160 |
161 | /// Useful for overriding `disposableAsync` in unit test with simulatated delays
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:214:13: warning: let 'mainThreadState' is not concurrency-safe because non-'Sendable' type 'ThreadState' may have shared mutable state; this is an error in the Swift 6 language mode
196 | }
197 |
198 | final class ThreadState {
| `- note: class 'ThreadState' does not conform to the 'Sendable' protocol
199 | var scheduler: Scheduler?
200 | var syncScheduler: Scheduler?
:
212 | }
213 |
214 | private let mainThreadState = ThreadState()
| |- warning: let 'mainThreadState' is not concurrency-safe because non-'Sendable' type 'ThreadState' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'mainThreadState' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
215 | private var _threadStateKey: pthread_key_t = 0
216 | private var threadStateKey: pthread_key_t = {
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:215:13: warning: var '_threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
213 |
214 | private let mainThreadState = ThreadState()
215 | private var _threadStateKey: pthread_key_t = 0
| |- warning: var '_threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_threadStateKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var '_threadStateKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
216 | private var threadStateKey: pthread_key_t = {
217 | let cleanup: @convention(c) (UnsafeMutableRawPointer) -> Void = { state in
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:216:13: warning: var 'threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
214 | private let mainThreadState = ThreadState()
215 | private var _threadStateKey: pthread_key_t = 0
216 | private var threadStateKey: pthread_key_t = {
| |- warning: var 'threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'threadStateKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'threadStateKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
217 | let cleanup: @convention(c) (UnsafeMutableRawPointer) -> Void = { state in
218 | Unmanaged<ThreadState>.fromOpaque(state).release()
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:82:13: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
80 | func async(after delay: TimeInterval, execute work: @escaping () -> ()) {
81 | return DispatchQueue.concurrentBackground.asyncAfter(deadline: DispatchTime.now() + delay) {
82 | self.async(execute: work)
| `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:82:33: warning: capture of 'work' with non-sendable type '() -> ()' in a '@Sendable' closure
80 | func async(after delay: TimeInterval, execute work: @escaping () -> ()) {
81 | return DispatchQueue.concurrentBackground.asyncAfter(deadline: DispatchTime.now() + delay) {
82 | self.async(execute: work)
| |- warning: capture of 'work' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:128:75: warning: passing non-sendable parameter '$0' to function expecting a @Sendable closure
126 | /// Create a new instance that will schedule its work on the provided `queue`
127 | convenience init(queue: DispatchQueue) {
128 | self.init(identifyingObject: queue, async: { queue.async(execute: $0) }, sync: queue.sync)
| | `- warning: passing non-sendable parameter '$0' to function expecting a @Sendable closure
| `- note: parameter '$0' is implicitly non-sendable
129 | }
130 |
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:28:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SignalOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Options used to customize the behaviours of constructed signals.
12 | public struct SignalOptions: OptionSet {
| `- note: consider making struct 'SignalOptions' conform to the 'Sendable' protocol
13 | public let rawValue: Int
14 | public init(rawValue: Int) {
:
26 | /// Shared signals are useful when the work performed when registering a callback is relatively expensive.
27 | /// If the work performed when registering a callback is trivial, it might be more efficient to not setup the signal to be shared.
28 | static let shared = SignalOptions(rawValue: 1<<0)
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SignalOptions' 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
29 |
30 | /// Defaults to `[ .shared ]`
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:31:16: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'SignalOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Options used to customize the behaviours of constructed signals.
12 | public struct SignalOptions: OptionSet {
| `- note: consider making struct 'SignalOptions' conform to the 'Sendable' protocol
13 | public let rawValue: Int
14 | public init(rawValue: Int) {
:
29 |
30 | /// Defaults to `[ .shared ]`
31 | static let `default`: SignalOptions = [ .shared ]
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'SignalOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
32 | }
33 |
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:116:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
114 |
115 | private var _mutex = pthread_mutex_t()
116 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
117 |
118 | init(shared: SharedState<Value>? = nil, getValue: (() -> Value)?, callback: @escaping (EventType<Value>) -> Void) {
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:296:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
294 | private let getValue: (() -> Value)?
295 | private var _mutex = pthread_mutex_t()
296 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
297 |
298 | typealias Callback = (EventType<Value>) -> Void
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Debug.swift:49:13: warning: var 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
47 |
48 | private let dateFormat = "HH:mm:ss.SSS"
49 | private var dateFormatter: DateFormatter = {
| |- warning: var 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'dateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
50 | let dateFormatter = DateFormatter()
51 | dateFormatter.dateFormat = dateFormat
[41/46] Compiling Flow Signal+Debug.swift
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:113:16: warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
111 |
112 | /// A Scheduler that won't schedule any work and hence just call work() immediatly
113 | static let none = Scheduler(identifyingObject: 0 as AnyObject, async: { _ in fatalError() }, sync: { _ in fatalError() })
| |- warning: static property 'none' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'none' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
114 |
115 | /// A Scheduler that will schedule work on `DispatchQueue.main``
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:116:16: warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
114 |
115 | /// A Scheduler that will schedule work on `DispatchQueue.main``
116 | static let main = Scheduler(queue: .main)
| |- warning: static property 'main' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'main' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
117 |
118 | /// A Scheduler that will schedule work on a serial background queue
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:119:16: warning: static property 'background' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
117 |
118 | /// A Scheduler that will schedule work on a serial background queue
119 | static let background = Scheduler(label: "flow.background.serial")
| |- warning: static property 'background' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'background' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
120 |
121 | /// A Scheduler that will schedule work on a concurrent background queue
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:122:16: warning: static property 'concurrentBackground' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
120 |
121 | /// A Scheduler that will schedule work on a concurrent background queue
122 | static let concurrentBackground = Scheduler(label: "flow.background.concurrent", attributes: .concurrent)
| |- warning: static property 'concurrentBackground' is not concurrency-safe because non-'Sendable' type 'Scheduler' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'concurrentBackground' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
123 | }
124 |
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:159:13: warning: var '_disposableAsync' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
157 | }
158 |
159 | private var _disposableAsync: (_ delay: TimeInterval, _ work: @escaping () -> ()) -> Disposable = Scheduler.concurrentBackground.disposableAsync
| |- warning: var '_disposableAsync' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_disposableAsync' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var '_disposableAsync' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
160 |
161 | /// Useful for overriding `disposableAsync` in unit test with simulatated delays
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:214:13: warning: let 'mainThreadState' is not concurrency-safe because non-'Sendable' type 'ThreadState' may have shared mutable state; this is an error in the Swift 6 language mode
196 | }
197 |
198 | final class ThreadState {
| `- note: class 'ThreadState' does not conform to the 'Sendable' protocol
199 | var scheduler: Scheduler?
200 | var syncScheduler: Scheduler?
:
212 | }
213 |
214 | private let mainThreadState = ThreadState()
| |- warning: let 'mainThreadState' is not concurrency-safe because non-'Sendable' type 'ThreadState' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make let 'mainThreadState' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
215 | private var _threadStateKey: pthread_key_t = 0
216 | private var threadStateKey: pthread_key_t = {
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:215:13: warning: var '_threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
213 |
214 | private let mainThreadState = ThreadState()
215 | private var _threadStateKey: pthread_key_t = 0
| |- warning: var '_threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert '_threadStateKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var '_threadStateKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
216 | private var threadStateKey: pthread_key_t = {
217 | let cleanup: @convention(c) (UnsafeMutableRawPointer) -> Void = { state in
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:216:13: warning: var 'threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
214 | private let mainThreadState = ThreadState()
215 | private var _threadStateKey: pthread_key_t = 0
216 | private var threadStateKey: pthread_key_t = {
| |- warning: var 'threadStateKey' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'threadStateKey' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'threadStateKey' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
217 | let cleanup: @convention(c) (UnsafeMutableRawPointer) -> Void = { state in
218 | Unmanaged<ThreadState>.fromOpaque(state).release()
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:82:13: warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
10 |
11 | /// Encapsulates how to asynchronously and synchronously scheduler work and allows comparing if two instances are representing the same scheduler.
12 | public final class Scheduler {
| `- note: class 'Scheduler' does not conform to the 'Sendable' protocol
13 | private let identifyingObject: AnyObject
14 | private let _async: (@escaping () -> Void) -> Void
:
80 | func async(after delay: TimeInterval, execute work: @escaping () -> ()) {
81 | return DispatchQueue.concurrentBackground.asyncAfter(deadline: DispatchTime.now() + delay) {
82 | self.async(execute: work)
| `- warning: capture of 'self' with non-sendable type 'Scheduler' in a '@Sendable' closure
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:82:33: warning: capture of 'work' with non-sendable type '() -> ()' in a '@Sendable' closure
80 | func async(after delay: TimeInterval, execute work: @escaping () -> ()) {
81 | return DispatchQueue.concurrentBackground.asyncAfter(deadline: DispatchTime.now() + delay) {
82 | self.async(execute: work)
| |- warning: capture of 'work' with non-sendable type '() -> ()' in a '@Sendable' closure
| `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
83 | }
84 | }
/Users/admin/builder/spi-builder-workspace/Flow/Scheduler.swift:128:75: warning: passing non-sendable parameter '$0' to function expecting a @Sendable closure
126 | /// Create a new instance that will schedule its work on the provided `queue`
127 | convenience init(queue: DispatchQueue) {
128 | self.init(identifyingObject: queue, async: { queue.async(execute: $0) }, sync: queue.sync)
| | `- warning: passing non-sendable parameter '$0' to function expecting a @Sendable closure
| `- note: parameter '$0' is implicitly non-sendable
129 | }
130 |
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:28:16: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SignalOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Options used to customize the behaviours of constructed signals.
12 | public struct SignalOptions: OptionSet {
| `- note: consider making struct 'SignalOptions' conform to the 'Sendable' protocol
13 | public let rawValue: Int
14 | public init(rawValue: Int) {
:
26 | /// Shared signals are useful when the work performed when registering a callback is relatively expensive.
27 | /// If the work performed when registering a callback is trivial, it might be more efficient to not setup the signal to be shared.
28 | static let shared = SignalOptions(rawValue: 1<<0)
| |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'SignalOptions' 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
29 |
30 | /// Defaults to `[ .shared ]`
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:31:16: warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'SignalOptions' may have shared mutable state; this is an error in the Swift 6 language mode
10 |
11 | /// Options used to customize the behaviours of constructed signals.
12 | public struct SignalOptions: OptionSet {
| `- note: consider making struct 'SignalOptions' conform to the 'Sendable' protocol
13 | public let rawValue: Int
14 | public init(rawValue: Int) {
:
29 |
30 | /// Defaults to `[ .shared ]`
31 | static let `default`: SignalOptions = [ .shared ]
| |- warning: static property 'default' is not concurrency-safe because non-'Sendable' type 'SignalOptions' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
32 | }
33 |
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:116:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
114 |
115 | private var _mutex = pthread_mutex_t()
116 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
117 |
118 | init(shared: SharedState<Value>? = nil, getValue: (() -> Value)?, callback: @escaping (EventType<Value>) -> Void) {
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Construction.swift:296:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
294 | private let getValue: (() -> Value)?
295 | private var _mutex = pthread_mutex_t()
296 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
297 |
298 | typealias Callback = (EventType<Value>) -> Void
/Users/admin/builder/spi-builder-workspace/Flow/Signal+Debug.swift:49:13: warning: var 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
47 |
48 | private let dateFormat = "HH:mm:ss.SSS"
49 | private var dateFormatter: DateFormatter = {
| |- warning: var 'dateFormatter' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'dateFormatter' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make var 'dateFormatter' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
50 | let dateFormatter = DateFormatter()
51 | dateFormatter.dateFormat = dateFormat
[42/46] Compiling Flow Signal+SwiftUI.swift
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:19:20: warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
17 | public var asBinding: Binding<Value> {
18 | Binding<Value>(
19 | get: { self.value },
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
20 | set: { self.value = $0 }
21 | )
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:20:20: warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
18 | Binding<Value>(
19 | get: { self.value },
20 | set: { self.value = $0 }
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
21 | )
22 | }
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:32:20: warning: capture of 'self' with non-sendable type 'CoreSignal<Read, Value>' in a '@Sendable' closure
30 | public var asBinding: Binding<Value> {
31 | Binding<Value>(
32 | get: { self.value },
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<Read, Value>' in a '@Sendable' closure
33 | set: { _ in }
34 | )
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Callbacker.swift:24:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
22 | private var callbacks = Callbacks.none
23 | private var _mutex = pthread_mutex_t()
24 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
25 |
26 | public init() {
/Users/admin/builder/spi-builder-workspace/Flow/Disposable.swift:32:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
30 | private var disposer: (() -> ())?
31 | private var _mutex = pthread_mutex_t()
32 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
33 |
34 | /// Pass a closure to be called when being disposed
/Users/admin/builder/spi-builder-workspace/Flow/Disposable.swift:62:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
60 | private var disposables: [Disposable]
61 | private var _mutex = pthread_mutex_t()
62 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
63 |
64 | /// Create an empty instance
[43/46] Compiling Flow Callbacker.swift
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:19:20: warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
17 | public var asBinding: Binding<Value> {
18 | Binding<Value>(
19 | get: { self.value },
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
20 | set: { self.value = $0 }
21 | )
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:20:20: warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
18 | Binding<Value>(
19 | get: { self.value },
20 | set: { self.value = $0 }
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
21 | )
22 | }
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:32:20: warning: capture of 'self' with non-sendable type 'CoreSignal<Read, Value>' in a '@Sendable' closure
30 | public var asBinding: Binding<Value> {
31 | Binding<Value>(
32 | get: { self.value },
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<Read, Value>' in a '@Sendable' closure
33 | set: { _ in }
34 | )
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Callbacker.swift:24:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
22 | private var callbacks = Callbacks.none
23 | private var _mutex = pthread_mutex_t()
24 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
25 |
26 | public init() {
/Users/admin/builder/spi-builder-workspace/Flow/Disposable.swift:32:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
30 | private var disposer: (() -> ())?
31 | private var _mutex = pthread_mutex_t()
32 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
33 |
34 | /// Pass a closure to be called when being disposed
/Users/admin/builder/spi-builder-workspace/Flow/Disposable.swift:62:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
60 | private var disposables: [Disposable]
61 | private var _mutex = pthread_mutex_t()
62 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
63 |
64 | /// Create an empty instance
[44/46] Compiling Flow CoreSignal.swift
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:19:20: warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
17 | public var asBinding: Binding<Value> {
18 | Binding<Value>(
19 | get: { self.value },
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
20 | set: { self.value = $0 }
21 | )
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:20:20: warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
18 | Binding<Value>(
19 | get: { self.value },
20 | set: { self.value = $0 }
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
21 | )
22 | }
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:32:20: warning: capture of 'self' with non-sendable type 'CoreSignal<Read, Value>' in a '@Sendable' closure
30 | public var asBinding: Binding<Value> {
31 | Binding<Value>(
32 | get: { self.value },
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<Read, Value>' in a '@Sendable' closure
33 | set: { _ in }
34 | )
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Callbacker.swift:24:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
22 | private var callbacks = Callbacks.none
23 | private var _mutex = pthread_mutex_t()
24 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
25 |
26 | public init() {
/Users/admin/builder/spi-builder-workspace/Flow/Disposable.swift:32:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
30 | private var disposer: (() -> ())?
31 | private var _mutex = pthread_mutex_t()
32 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
33 |
34 | /// Pass a closure to be called when being disposed
/Users/admin/builder/spi-builder-workspace/Flow/Disposable.swift:62:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
60 | private var disposables: [Disposable]
61 | private var _mutex = pthread_mutex_t()
62 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
63 |
64 | /// Create an empty instance
[45/46] Compiling Flow Delegate.swift
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:19:20: warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
17 | public var asBinding: Binding<Value> {
18 | Binding<Value>(
19 | get: { self.value },
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
20 | set: { self.value = $0 }
21 | )
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:20:20: warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
18 | Binding<Value>(
19 | get: { self.value },
20 | set: { self.value = $0 }
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
21 | )
22 | }
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:32:20: warning: capture of 'self' with non-sendable type 'CoreSignal<Read, Value>' in a '@Sendable' closure
30 | public var asBinding: Binding<Value> {
31 | Binding<Value>(
32 | get: { self.value },
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<Read, Value>' in a '@Sendable' closure
33 | set: { _ in }
34 | )
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Callbacker.swift:24:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
22 | private var callbacks = Callbacks.none
23 | private var _mutex = pthread_mutex_t()
24 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
25 |
26 | public init() {
/Users/admin/builder/spi-builder-workspace/Flow/Disposable.swift:32:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
30 | private var disposer: (() -> ())?
31 | private var _mutex = pthread_mutex_t()
32 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
33 |
34 | /// Pass a closure to be called when being disposed
/Users/admin/builder/spi-builder-workspace/Flow/Disposable.swift:62:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
60 | private var disposables: [Disposable]
61 | private var _mutex = pthread_mutex_t()
62 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
63 |
64 | /// Create an empty instance
[46/46] Compiling Flow Disposable.swift
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:19:20: warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
17 | public var asBinding: Binding<Value> {
18 | Binding<Value>(
19 | get: { self.value },
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
20 | set: { self.value = $0 }
21 | )
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:20:20: warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
18 | Binding<Value>(
19 | get: { self.value },
20 | set: { self.value = $0 }
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<ReadWrite, Value>' in a '@Sendable' closure
21 | )
22 | }
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Bridges/Signal+SwiftUI.swift:32:20: warning: capture of 'self' with non-sendable type 'CoreSignal<Read, Value>' in a '@Sendable' closure
30 | public var asBinding: Binding<Value> {
31 | Binding<Value>(
32 | get: { self.value },
| `- warning: capture of 'self' with non-sendable type 'CoreSignal<Read, Value>' in a '@Sendable' closure
33 | set: { _ in }
34 | )
/Users/admin/builder/spi-builder-workspace/Flow/CoreSignal.swift:21:20: note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
19 | /// applicable to more than one of kind of signal, it often makes sense to work directly with `CoreSignal` to
20 | /// allow sharing of implemtenations.
21 | public final class CoreSignal<Kind: SignalKind, Value> {
| `- note: generic class 'CoreSignal' does not conform to the 'Sendable' protocol
22 | internal let onEventType: (@escaping (EventType) -> Void) -> Disposable
23 |
/Users/admin/builder/spi-builder-workspace/Flow/Callbacker.swift:24:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
22 | private var callbacks = Callbacks.none
23 | private var _mutex = pthread_mutex_t()
24 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
25 |
26 | public init() {
/Users/admin/builder/spi-builder-workspace/Flow/Disposable.swift:32:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
30 | private var disposer: (() -> ())?
31 | private var _mutex = pthread_mutex_t()
32 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
33 |
34 | /// Pass a closure to be called when being disposed
/Users/admin/builder/spi-builder-workspace/Flow/Disposable.swift:62:46: warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
60 | private var disposables: [Disposable]
61 | private var _mutex = pthread_mutex_t()
62 | private var mutex: PThreadMutex { return PThreadMutex(&_mutex) }
| | |- note: implicit argument conversion from 'pthread_mutex_t' (aka '_opaque_pthread_mutex_t') to 'UnsafeMutablePointer<pthread_mutex_t>' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') produces a pointer valid only for the duration of the call to 'init(_:)'
| | `- note: use 'withUnsafeMutablePointer' in order to explicitly convert argument to pointer valid for a defined scope
| `- warning: initialization of 'PThreadMutex' (aka 'UnsafeMutablePointer<_opaque_pthread_mutex_t>') results in a dangling pointer
63 |
64 | /// Create an empty instance
Build complete! (9.97s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "Flow",
"name" : "Flow",
"path" : "/Users/admin/builder/spi-builder-workspace",
"platforms" : [
],
"products" : [
{
"name" : "Flow",
"targets" : [
"Flow"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "FlowTests",
"module_type" : "SwiftTarget",
"name" : "FlowTests",
"path" : "FlowTests",
"sources" : [
"CallbackerTests.swift",
"DelegateTests.swift",
"EitherTests.swift",
"EventListenerTests.swift",
"Future+CombineTests.swift",
"FutureAdditionsTests.swift",
"FutureBasicTests.swift",
"FutureQueueTests.swift",
"FutureRepeatTests.swift",
"FutureSchedulingTests.swift",
"FutureSplitTests.swift",
"FutureUtilitiesTests.swift",
"MemoryUtilsTests.swift",
"MultipleContinuationsTests.swift",
"PrefetchTests.swift",
"PropertyTests.swift",
"RecursiveTests.swift",
"Signal+CombineTests.swift",
"SignalConcurrenceyTests.swift",
"SignalProviderTests+Internal.swift",
"SignalProviderTests.swift",
"SignalTests.swift",
"TestUtilities.swift",
"UIViewSignalTests.swift"
],
"target_dependencies" : [
"Flow"
],
"type" : "test"
},
{
"c99name" : "Flow",
"module_type" : "SwiftTarget",
"name" : "Flow",
"path" : "Flow",
"product_memberships" : [
"Flow"
],
"sources" : [
"Bridges/CancelBag.swift",
"Bridges/Disposable+Cancellable.swift",
"Bridges/Future+Combine.swift",
"Bridges/Publisher+Utilities.swift",
"Bridges/Signal+Combine.swift",
"Bridges/Signal+SwiftUI.swift",
"Callbacker.swift",
"CoreSignal.swift",
"Delegate.swift",
"Disposable.swift",
"Either.swift",
"Enablable.swift",
"Event.swift",
"EventType.swift",
"FiniteSignal.swift",
"Future+Additions.swift",
"Future+Combiners.swift",
"Future+Signal.swift",
"Future.swift",
"FutureQueue.swift",
"HasEventListeners.swift",
"Locking.swift",
"OrderedCallbacker.swift",
"ReadSignal.swift",
"ReadWriteSignal.swift",
"Recursive.swift",
"Result.swift",
"Scheduler.swift",
"Signal+Combiners.swift",
"Signal+Construction.swift",
"Signal+Debug.swift",
"Signal+KeyValueObserving.swift",
"Signal+Listeners.swift",
"Signal+Scheduling.swift",
"Signal+Transforms.swift",
"Signal+Utilities.swift",
"Signal.swift",
"SignalProvider.swift",
"TargetActionable.swift",
"UIControls+Extensions.swift",
"UIView+EditingMenu.swift",
"UIView+Signal.swift",
"Utilities.swift"
],
"type" : "library"
}
],
"tools_version" : "5.0"
}
Done.