TM-SGNL-iOS/SignalServiceKit/Schedulers/DispatchQueueSchedulers.swift
TeleMessage developers dde0620daf initial commit
2025-05-03 12:28:28 -07:00

53 lines
1.3 KiB
Swift

//
// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import Foundation
public class DispatchQueueSchedulers: Schedulers {
public init() {}
public let sync: Scheduler = SyncScheduler()
public var main: Scheduler {
return DispatchQueue.main
}
public func global(qos: DispatchQoS.QoSClass) -> Scheduler {
return DispatchQueue.global(qos: qos)
}
public var sharedUserInteractive: Scheduler {
return DispatchQueue.sharedUserInteractive
}
public var sharedUserInitiated: Scheduler {
return DispatchQueue.sharedUserInitiated
}
public var sharedUtility: Scheduler {
return DispatchQueue.sharedUtility
}
public func sharedQueue(at qos: DispatchQoS) -> Scheduler {
return DispatchQueue.sharedQueue(at: qos)
}
public func queue(
label: String,
qos: DispatchQoS,
attributes: DispatchQueue.Attributes,
autoreleaseFrequency: DispatchQueue.AutoreleaseFrequency,
target: DispatchQueue?
) -> Scheduler {
return DispatchQueue(
label: label,
qos: qos,
attributes: attributes,
autoreleaseFrequency: autoreleaseFrequency,
target: target
)
}
}