@@ -46,17 +46,19 @@ package struct LockedState<State> {
46
46
fileprivate static func initialize( _ platformLock: PlatformLock ) {
47
47
#if canImport(os)
48
48
platformLock. initialize ( to: os_unfair_lock ( ) )
49
- #elseif canImport(Bionic) || canImport(Glibc)
49
+ #elseif canImport(Bionic) || canImport(Glibc) || canImport(Musl)
50
50
pthread_mutex_init ( platformLock, nil )
51
51
#elseif canImport(WinSDK)
52
52
InitializeSRWLock ( platformLock)
53
53
#elseif os(WASI)
54
54
// no-op
55
+ #else
56
+ #error("LockedState._Lock.initialize is unimplemented on this platform")
55
57
#endif
56
58
}
57
59
58
60
fileprivate static func deinitialize( _ platformLock: PlatformLock ) {
59
- #if canImport(Bionic) || canImport(Glibc)
61
+ #if canImport(Bionic) || canImport(Glibc) || canImport(Musl)
60
62
pthread_mutex_destroy ( platformLock)
61
63
#endif
62
64
platformLock. deinitialize ( count: 1 )
@@ -65,24 +67,28 @@ package struct LockedState<State> {
65
67
static fileprivate func lock( _ platformLock: PlatformLock ) {
66
68
#if canImport(os)
67
69
os_unfair_lock_lock ( platformLock)
68
- #elseif canImport(Bionic) || canImport(Glibc)
70
+ #elseif canImport(Bionic) || canImport(Glibc) || canImport(Musl)
69
71
pthread_mutex_lock ( platformLock)
70
72
#elseif canImport(WinSDK)
71
73
AcquireSRWLockExclusive ( platformLock)
72
74
#elseif os(WASI)
73
75
// no-op
76
+ #else
77
+ #error("LockedState._Lock.lock is unimplemented on this platform")
74
78
#endif
75
79
}
76
80
77
81
static fileprivate func unlock( _ platformLock: PlatformLock ) {
78
82
#if canImport(os)
79
83
os_unfair_lock_unlock ( platformLock)
80
- #elseif canImport(Bionic) || canImport(Glibc)
84
+ #elseif canImport(Bionic) || canImport(Glibc) || canImport(Musl)
81
85
pthread_mutex_unlock ( platformLock)
82
86
#elseif canImport(WinSDK)
83
87
ReleaseSRWLockExclusive ( platformLock)
84
88
#elseif os(WASI)
85
89
// no-op
90
+ #else
91
+ #error("LockedState._Lock.unlock is unimplemented on this platform")
86
92
#endif
87
93
}
88
94
}
0 commit comments