New background task modes
This commit is contained in:
28
CapCollector/Extensions/DispatchGroup+Extensions.swift
Normal file
28
CapCollector/Extensions/DispatchGroup+Extensions.swift
Normal file
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// DispatchGroup+Extensions.swift
|
||||
// CapCollector
|
||||
//
|
||||
// Created by iMac on 13.01.21.
|
||||
// Copyright © 2021 CH. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
extension DispatchGroup {
|
||||
|
||||
typealias AsyncSuccessCallback = (Bool) -> Void
|
||||
|
||||
static func singleTask(timeout: TimeInterval = 30, _ block: (@escaping AsyncSuccessCallback) -> Void) -> Bool {
|
||||
let group = DispatchGroup()
|
||||
group.enter()
|
||||
var result = true
|
||||
block { success in
|
||||
result = success
|
||||
group.leave()
|
||||
}
|
||||
guard group.wait(timeout: .now() + timeout) == .success else {
|
||||
return false
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user