35
35
36
36
// Backports the Swift 6 type Mutex<Value> to all Darwin platforms
37
37
38
- @available ( macOS, introduced : 13.0 , deprecated: 15.0 , message: " use Mutex from Synchronization module " )
39
- @available ( iOS, introduced : 16.0 , deprecated: 18.0 , message: " use Mutex from Synchronization module " )
40
- @available ( tvOS, introduced : 18.0 , deprecated: 15.0 , message: " use Mutex from Synchronization module " )
41
- @available ( watchOS, introduced : 11.0 , deprecated: 15.0 , message: " use Mutex from Synchronization module " )
42
- @available ( visionOS, introduced : 2.0 , deprecated: 15.0 , message: " use Mutex from Synchronization module " )
43
- public struct Mutex < Value: ~ Copyable> : @ unchecked Sendable , ~ Copyable {
38
+ @available ( macOS, deprecated: 15.0 , message: " use Mutex from Synchronization module " )
39
+ @available ( iOS, deprecated: 18.0 , message: " use Mutex from Synchronization module " )
40
+ @available ( tvOS, deprecated: 15.0 , message: " use Mutex from Synchronization module " )
41
+ @available ( watchOS, deprecated: 15.0 , message: " use Mutex from Synchronization module " )
42
+ @available ( visionOS, deprecated: 15.0 , message: " use Mutex from Synchronization module " )
43
+ public struct Mutex < Value: ~ Copyable> : ~ Copyable {
44
44
let storage : Storage < Value >
45
45
46
46
public init ( _ initialValue: consuming sending Value) {
@@ -64,6 +64,8 @@ public struct Mutex<Value: ~Copyable>: @unchecked Sendable, ~Copyable {
64
64
}
65
65
}
66
66
67
+ extension Mutex : @unchecked Sendable where Value: ~ Copyable { }
68
+
67
69
#else
68
70
69
71
// Windows doesn't support ~Copyable yet
0 commit comments