Skip to content

Commit e7b9b60

Browse files
authored
Extract the result to test the preconditions seperate from the function calls for locking (#244)
1 parent 3f12423 commit e7b9b60

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

Sources/AsyncAlgorithms/Locking.swift

+6-3
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,17 @@ internal struct Lock {
3737
#if canImport(Darwin)
3838
platformLock.initialize(to: os_unfair_lock())
3939
#elseif canImport(Glibc)
40-
precondition(pthread_mutex_init(platformLock, nil) == 0, "pthread_mutex_init failed")
40+
let result = pthread_mutex_init(platformLock, nil)
41+
precondition(result == 0, "pthread_mutex_init failed")
4142
#elseif canImport(WinSDK)
4243
InitializeSRWLock(platformLock)
4344
#endif
4445
}
4546

4647
fileprivate static func deinitialize(_ platformLock: PlatformLock) {
4748
#if canImport(Glibc)
48-
precondition(pthread_mutex_destroy(platformLock) == 0, "pthread_mutex_destroy failed")
49+
let result = pthread_mutex_destroy(platformLock)
50+
precondition(result == 0, "pthread_mutex_destroy failed")
4951
#endif
5052
platformLock.deinitialize(count: 1)
5153
}
@@ -64,7 +66,8 @@ internal struct Lock {
6466
#if canImport(Darwin)
6567
os_unfair_lock_unlock(platformLock)
6668
#elseif canImport(Glibc)
67-
precondition(pthread_mutex_unlock(platformLock) == 0, "pthread_mutex_unlock failed")
69+
let result = pthread_mutex_unlock(platformLock)
70+
precondition(result == 0, "pthread_mutex_unlock failed")
6871
#elseif canImport(WinSDK)
6972
ReleaseSRWLockExclusive(platformLock)
7073
#endif

0 commit comments

Comments
 (0)