mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Clean up the TaskGroup ABI:
- stop storing the parent task in the TaskGroup at the .swift level - make sure that swift_taskGroup_isCancelled is implied by the parent task being cancelled - make the TaskGroup structs frozen - make the withTaskGroup functions inlinable - remove swift_taskGroup_create - teach IRGen to allocate memory for the task group - don't deallocate the task group in swift_taskGroup_destroy To achieve the allocation change, introduce paired create/destroy builtins. Furthermore, remove the _swiftRetain and _swiftRelease functions and several calls to them. Replace them with uses of the appropriate builtins. I should probably change the builtins to return retained, since they're working with a managed type, but I'll do that in a separate commit.
This commit is contained in:
@@ -346,6 +346,10 @@ static AsyncTaskAndContext swift_task_create_group_future_commonImpl(
|
||||
if (flags.task_isChildTask()) {
|
||||
parent = swift_task_getCurrent();
|
||||
assert(parent != nullptr && "creating a child task with no active task");
|
||||
|
||||
// Inherit the priority of the parent task if unspecified.
|
||||
if (flags.getPriority() == JobPriority::Unspecified)
|
||||
flags.setPriority(parent->getPriority());
|
||||
}
|
||||
|
||||
// Figure out the size of the header.
|
||||
|
||||
Reference in New Issue
Block a user