CoScope
public final class CoScope
extension CoScope: CoCancellable
The holder of uncompleted CoCancellable and coroutines.
CoScope helps to manage lifecycle of coroutines and CoCancellable, like CoFuture and CoChannel.
It keeps weak references on inner objects and cancels them on cancel() or deinit.
All completed objects are automaticaly removed from scope.
Note
CoScope keeps weak references.
let scope = CoScope()
let future = makeSomeFuture().added(to: scope)
queue.startCoroutine(in: scope) {
. . . some code . . .
let result = try future.await()
. . . some code . . .
}
let future2 = queue.coroutineFuture {
try Coroutine.delay(.seconds(5)) // imitate some work
return 5
}.added(to: scope)
//cancel all added futures and coroutines
scope.cancel()
-
Initializes a scope.
Declaration
Swift
public init() -
Adds weak referance of
CoCancellableto be canceled when the scope is being canceled or deinited.Declaration
Swift
public func add(_ item: CoCancellable)Parameters
itemCoCancellableto add. -
Returns
trueif the scope is empty (contains noCoCancellable).Declaration
Swift
public var isEmpty: Bool { get }
-
Returns
trueif the scope is canceled.Declaration
Swift
public var isCanceled: Bool { get } -
Cancels the scope and all
CoCancellablethat it contains.Declaration
Swift
public func cancel() -
Adds an observer callback that is called when the
CoScopeis canceled or deinited.Declaration
Swift
public func whenComplete(_ callback: @escaping () -> Void)Parameters
callbackThe callback that is called when the scope is canceled or deinited.
CoScope Class Reference