@@ -33,7 +33,8 @@ internal struct _ManagedCriticalState<State> {
33
33
}
34
34
35
35
internal init( _ initial: State) {
36
- self . init ( LockedBuffer . create ( minimumCapacity: Swift . max ( _lockSize ( ) / MemoryLayout< UnsafeRawPointer> . size, 1 ) ) { buffer in
36
+ let roundedSize = ( _lockSize ( ) + MemoryLayout < UnsafeRawPointer > . size - 1 ) / MemoryLayout< UnsafeRawPointer> . size
37
+ self . init ( LockedBuffer . create ( minimumCapacity: Swift . max ( roundedSize, 1 ) ) { buffer in
37
38
buffer. withUnsafeMutablePointerToElements { _lockInit ( UnsafeRawPointer ( $0) ) }
38
39
return initial
39
40
} )
@@ -52,30 +53,6 @@ internal struct _ManagedCriticalState<State> {
52
53
}
53
54
}
54
55
55
- @available ( SwiftStdlib 5 . 9 , * )
56
- internal protocol _Deinitializable {
57
- mutating func deinitialize( )
58
- }
59
-
60
- @available ( SwiftStdlib 5 . 9 , * )
61
- extension _ManagedCriticalState where State: _Deinitializable {
62
- final private class DeinitializingLockedBuffer :
63
- ManagedBuffer < State , UnsafeRawPointer > {
64
- deinit {
65
- withUnsafeMutablePointers { header, lock in
66
- header. pointee. deinitialize ( )
67
- }
68
- }
69
- }
70
-
71
- internal init ( managing initial: State ) {
72
- self . init ( DeinitializingLockedBuffer . create ( minimumCapacity: Swift . max ( _lockSize ( ) / MemoryLayout< UnsafeRawPointer> . size, 1 ) ) { buffer in
73
- buffer. withUnsafeMutablePointerToElements { _lockInit ( UnsafeRawPointer ( $0) ) }
74
- return initial
75
- } )
76
- }
77
- }
78
-
79
56
@available ( SwiftStdlib 5 . 9 , * )
80
57
extension _ManagedCriticalState : @unchecked Sendable where State: Sendable { }
81
58
0 commit comments