Files
GLEGram-iOS/submodules/SSignalKit/SwiftSignalKit/Source/Lock.swift
T
Leeksov 4647310322 GLEGram 12.5 — Initial public release
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.
2026-04-06 09:48:12 +03:00

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)
}
}
}