Merge commit '7621e2f8dec938cf48181c8b10afc9b01f444e68' into beta

This commit is contained in:
Ilya Laktyushin
2025-12-06 02:17:48 +04:00
commit 8344b97e03
28070 changed files with 7995182 additions and 0 deletions
@@ -0,0 +1,34 @@
import Foundation
public final class Lock {
private var mutex = pthread_mutex_t()
public init() {
pthread_mutex_init(&self.mutex, nil)
}
deinit {
pthread_mutex_destroy(&self.mutex)
}
public func locked(_ f: () -> ()) {
pthread_mutex_lock(&self.mutex)
f()
pthread_mutex_unlock(&self.mutex)
}
public func throwingLocked(_ f: () throws -> Void) throws {
var error: Error?
pthread_mutex_lock(&self.mutex)
do {
try f()
} catch let e {
error = e
}
pthread_mutex_unlock(&self.mutex)
if let error = error {
throw(error)
}
}
}