Files
divkit/client/ios/Core/Base/Disposable.swift
T
babaevmm f250ad7b40 open rw locks pr
add rw locks usage
2022-09-26 16:41:40 +03:00

32 lines
567 B
Swift

// Copyright 2018 Yandex LLC. All rights reserved.
public final class Disposable {
private var _dispose: (() -> Void)?
public init(_ dispose: (() -> Void)? = nil) {
_dispose = dispose
}
public func dispose() {
_dispose?()
_dispose = nil
}
deinit {
dispose()
}
public static let empty = Disposable()
}
extension Disposable {
@inlinable
public convenience init<S: Sequence>(_ disposables: S) where S.Element == Disposable {
self.init {
for disposable in disposables {
disposable.dispose()
}
}
}
}