mirror of
https://github.com/GLEGram/GLEGram-iOS.git
synced 2026-04-25 20:36:41 +02:00
4647310322
Based on Swiftgram 12.5 (Telegram iOS 12.5). All GLEGram features ported and organized in GLEGram/ folder. Features: Ghost Mode, Saved Deleted Messages, Content Protection Bypass, Font Replacement, Fake Profile, Chat Export, Plugin System, and more. See CHANGELOG_12.5.md for full details.
35 lines
724 B
Swift
35 lines
724 B
Swift
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)
|
|
}
|
|
}
|
|
}
|