dnadoba
(David Nadoba)
1
Hi everyone,
Is it possible to get the current task from within an async function?
I found withUnsafeCurrentTask(body:) and UnsafeCurrentTask. The documentation of UnsafeCurrentTask says:
[...] use the task property of UnsafeCurrentTask to access an instance of Task that you can store long-term and interact with outside of the closure body. [...]
However, it looks like this property is not available (Xcode 13 Beta 3) and I think it is also not mentioned in the Proposal.
Context: I want to get the current task during the execution of the closure that I pass to Task.init(priority:operation:) to be able to cancel the current task later.
Thanks
David
1 Like
somu
(somu)
2
Given below is my understanding (I could be wrong):
You could use try Task.checkCancellation to check if the current task is cancelled, and I don't think you need to pass it around. If a parent task is cancelled all it's child tasks would be cancelled.
Refer:
hello,
Thanks for help @SomuYadav, I have same issue Really appreciate for help.
dnadoba
(David Nadoba)
4
The problem is that this Task I have does not have a parent Task. I use Task.checkCancellation() to check for cancellation but I want to get the Task to be able to cancel the Task in the first place.
The thing is that I call a method which does not use the new concurrency features from Swift and which may want to cancel the current task asynchronously. I want to give this method a Task so that it can cancel it. Because I need to call this method from inside the operation closure from Task.init(priority:operation:) I can't use the Task returned from the initializer.
3 Likes