Skip to content

Commit 315f510

Browse files
author
Chris Amanse
committed
Fatal error on pthread cond/mutex destroy failure
1 parent 38377df commit 315f510

File tree

3 files changed

+5
-9
lines changed

3 files changed

+5
-9
lines changed

stdlib/private/SwiftPrivateThreadExtras/SwiftPrivateThreadExtras.swift

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,7 @@ public class _stdlib_Barrier {
162162
}
163163

164164
deinit {
165-
let ret = _stdlib_thread_barrier_destroy(_threadBarrierPtr)
166-
if ret != 0 {
167-
fatalError("_stdlib_thread_barrier_destroy() failed")
168-
}
165+
_stdlib_thread_barrier_destroy(_threadBarrierPtr)
169166
}
170167

171168
public func wait() {

stdlib/private/SwiftPrivateThreadExtras/ThreadBarriers.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,14 @@ private func _stdlib_pthread_barrier_mutex_and_cond_init(_ barrier: UnsafeMutabl
9494

9595
public func _stdlib_thread_barrier_destroy(
9696
_ barrier: UnsafeMutablePointer<_stdlib_thread_barrier_t>
97-
) -> CInt {
97+
) {
9898
#if os(Windows)
9999
// Condition Variables do not need to be explicitly destroyed
100100
// Mutexes do not need to be explicitly destroyed
101101
#else
102102
guard pthread_cond_destroy(barrier.pointee.cond!) == 0 &&
103103
pthread_mutex_destroy(barrier.pointee.mutex!) == 0 else {
104-
return -1
104+
fatalError("_stdlib_thread_barrier_destroy() failed")
105105
}
106106
#endif
107107
barrier.pointee.cond!.deinitialize(count: 1)
@@ -110,7 +110,7 @@ public func _stdlib_thread_barrier_destroy(
110110
barrier.pointee.mutex!.deinitialize(count: 1)
111111
barrier.pointee.mutex!.deallocate()
112112

113-
return 0
113+
return
114114
}
115115

116116
public func _stdlib_thread_barrier_wait(

validation-test/stdlib/StringSlicesConcurrentAppend.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,7 @@ StringTestSuite.test("SliceConcurrentAppend") {
111111
expectEqual(0, joinRet1)
112112
expectEqual(0, joinRet2)
113113

114-
ret = _stdlib_thread_barrier_destroy(barrierVar!)
115-
expectEqual(0, ret)
114+
_stdlib_thread_barrier_destroy(barrierVar!)
116115

117116
barrierVar!.deinitialize(count: 1)
118117
barrierVar!.deallocate()

0 commit comments

Comments
 (0)