Concurrency: Promote BuiltinCreateTask feature to baseline.

This commit is contained in:
Allan Shortlidge
2024-07-02 22:12:29 -07:00
parent 7e181d17e5
commit ee8a1152b2
7 changed files with 1 additions and 114 deletions

View File

@@ -187,7 +187,7 @@ CONDITIONALLY_SUPPRESSIBLE_LANGUAGE_FEATURE(OptionalIsolatedParameters, 420, "Op
SUPPRESSIBLE_LANGUAGE_FEATURE(Extern, 0, "@_extern") SUPPRESSIBLE_LANGUAGE_FEATURE(Extern, 0, "@_extern")
LANGUAGE_FEATURE(ExpressionMacroDefaultArguments, 422, "Expression macro as caller-side default argument") LANGUAGE_FEATURE(ExpressionMacroDefaultArguments, 422, "Expression macro as caller-side default argument")
LANGUAGE_FEATURE(BuiltinStoreRaw, 0, "Builtin.storeRaw") LANGUAGE_FEATURE(BuiltinStoreRaw, 0, "Builtin.storeRaw")
LANGUAGE_FEATURE(BuiltinCreateTask, 0, "Builtin.createTask and Builtin.createDiscardingTask") BASELINE_LANGUAGE_FEATURE(BuiltinCreateTask, 0, "Builtin.createTask and Builtin.createDiscardingTask")
SUPPRESSIBLE_LANGUAGE_FEATURE(AssociatedTypeImplements, 0, "@_implements on associated types") SUPPRESSIBLE_LANGUAGE_FEATURE(AssociatedTypeImplements, 0, "@_implements on associated types")
LANGUAGE_FEATURE(BuiltinAddressOfRawLayout, 0, "Builtin.addressOfRawLayout") LANGUAGE_FEATURE(BuiltinAddressOfRawLayout, 0, "Builtin.addressOfRawLayout")
LANGUAGE_FEATURE(MoveOnlyPartialConsumption, 429, "Partial consumption of noncopyable values") LANGUAGE_FEATURE(MoveOnlyPartialConsumption, 429, "Partial consumption of noncopyable values")

View File

@@ -126,7 +126,6 @@ static bool usesFeatureRethrowsProtocol(Decl *decl) {
UNINTERESTING_FEATURE(BuiltinUnprotectedStackAlloc) UNINTERESTING_FEATURE(BuiltinUnprotectedStackAlloc)
UNINTERESTING_FEATURE(BuiltinAllocVector) UNINTERESTING_FEATURE(BuiltinAllocVector)
UNINTERESTING_FEATURE(BuiltinCreateTask)
static bool usesFeatureNewCxxMethodSafetyHeuristics(Decl *decl) { static bool usesFeatureNewCxxMethodSafetyHeuristics(Decl *decl) {
return decl->hasClangNode(); return decl->hasClangNode();

View File

@@ -223,7 +223,6 @@ public struct DiscardingTaskGroup {
#endif #endif
// Create the task in this group. // Create the task in this group.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -231,9 +230,6 @@ public struct DiscardingTaskGroup {
initialSerialExecutor: builtinSerialExecutor, initialSerialExecutor: builtinSerialExecutor,
taskGroup: _group, taskGroup: _group,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncDiscardingTaskInGroup(flags, _group, operation)
#endif
} }
/// Adds a child task to the group, unless the group has been canceled. /// Adds a child task to the group, unless the group has been canceled.
@@ -275,7 +271,6 @@ public struct DiscardingTaskGroup {
#endif #endif
// Create the task in this group. // Create the task in this group.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -283,9 +278,6 @@ public struct DiscardingTaskGroup {
initialSerialExecutor: builtinSerialExecutor, initialSerialExecutor: builtinSerialExecutor,
taskGroup: _group, taskGroup: _group,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncDiscardingTaskInGroup(flags, _group, operation)
#endif
return true return true
} }
@@ -302,7 +294,6 @@ public struct DiscardingTaskGroup {
) )
// Create the task in this group. // Create the task in this group.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -310,9 +301,6 @@ public struct DiscardingTaskGroup {
initialSerialExecutor: builtinSerialExecutor, initialSerialExecutor: builtinSerialExecutor,
taskGroup: _group, taskGroup: _group,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncDiscardingTaskInGroup(flags, _group, operation)
#endif
} }
/// Adds a child task to the group, unless the group has been canceled. /// Adds a child task to the group, unless the group has been canceled.
@@ -344,7 +332,6 @@ public struct DiscardingTaskGroup {
) )
// Create the task in this group. // Create the task in this group.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -352,9 +339,6 @@ public struct DiscardingTaskGroup {
initialSerialExecutor: builtinSerialExecutor, initialSerialExecutor: builtinSerialExecutor,
taskGroup: _group, taskGroup: _group,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncDiscardingTaskInGroup(flags, _group, operation)
#endif
return true return true
#else #else
@@ -809,7 +793,6 @@ public struct ThrowingDiscardingTaskGroup<Failure: Error> {
) )
// Create the task in this group. // Create the task in this group.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -817,9 +800,6 @@ public struct ThrowingDiscardingTaskGroup<Failure: Error> {
initialSerialExecutor: builtinSerialExecutor, initialSerialExecutor: builtinSerialExecutor,
taskGroup: _group, taskGroup: _group,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncDiscardingTaskInGroup(flags, _group, operation)
#endif
#else #else
fatalError("Unsupported Swift compiler") fatalError("Unsupported Swift compiler")
#endif #endif
@@ -849,7 +829,6 @@ public struct ThrowingDiscardingTaskGroup<Failure: Error> {
) )
// Create the task in this group. // Create the task in this group.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -857,9 +836,6 @@ public struct ThrowingDiscardingTaskGroup<Failure: Error> {
initialSerialExecutor: builtinSerialExecutor, initialSerialExecutor: builtinSerialExecutor,
taskGroup: _group, taskGroup: _group,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncDiscardingTaskInGroup(flags, _group, operation)
#endif
return true return true
#else #else

View File

@@ -229,7 +229,6 @@ extension Task where Failure == Never {
self = Self.init(priority: priority, operation: operation) self = Self.init(priority: priority, operation: operation)
return return
} }
#if $BuiltinCreateAsyncTaskWithExecutor && $BuiltinCreateTask
// Set up the job flags for a new task. // Set up the job flags for a new task.
let flags = taskCreateFlags( let flags = taskCreateFlags(
priority: priority, isChildTask: false, copyTaskLocals: true, priority: priority, isChildTask: false, copyTaskLocals: true,
@@ -243,9 +242,6 @@ extension Task where Failure == Never {
operation: operation) operation: operation)
self._task = task self._task = task
#else
fatalError("Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskWithExecutor or $BuiltinCreateTask")
#endif
} }
} }
@@ -289,7 +285,6 @@ extension Task where Failure == Error {
self = Self.init(priority: priority, operation: operation) self = Self.init(priority: priority, operation: operation)
return return
} }
#if $BuiltinCreateAsyncTaskWithExecutor && $BuiltinCreateTask
// Set up the job flags for a new task. // Set up the job flags for a new task.
let flags = taskCreateFlags( let flags = taskCreateFlags(
priority: priority, isChildTask: false, copyTaskLocals: true, priority: priority, isChildTask: false, copyTaskLocals: true,
@@ -303,9 +298,6 @@ extension Task where Failure == Error {
operation: operation) operation: operation)
self._task = task self._task = task
#else
fatalError("Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskWithExecutor or $BuiltinCreateTask")
#endif
} }
} }
@@ -347,7 +339,6 @@ extension Task where Failure == Never {
guard let taskExecutor else { guard let taskExecutor else {
return Self.detached(priority: priority, operation: operation) return Self.detached(priority: priority, operation: operation)
} }
#if $BuiltinCreateAsyncTaskWithExecutor && $BuiltinCreateTask
// Set up the job flags for a new task. // Set up the job flags for a new task.
let flags = taskCreateFlags( let flags = taskCreateFlags(
priority: priority, isChildTask: false, copyTaskLocals: false, priority: priority, isChildTask: false, copyTaskLocals: false,
@@ -362,9 +353,6 @@ extension Task where Failure == Never {
operation: operation) operation: operation)
return Task(task) return Task(task)
#else
fatalError("Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskWithExecutor or $BuiltinCreateTask")
#endif
} }
} }
@@ -406,7 +394,6 @@ extension Task where Failure == Error {
guard let taskExecutor else { guard let taskExecutor else {
return Self.detached(priority: priority, operation: operation) return Self.detached(priority: priority, operation: operation)
} }
#if $BuiltinCreateAsyncTaskWithExecutor && $BuiltinCreateTask
// Set up the job flags for a new task. // Set up the job flags for a new task.
let flags = taskCreateFlags( let flags = taskCreateFlags(
priority: priority, isChildTask: false, copyTaskLocals: false, priority: priority, isChildTask: false, copyTaskLocals: false,
@@ -420,9 +407,6 @@ extension Task where Failure == Error {
operation: operation) operation: operation)
return Task(task) return Task(task)
#else
fatalError("Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskWithExecutor or $BuiltinCreateTask")
#endif
} }
} }

View File

@@ -679,7 +679,6 @@ extension Task where Failure == Never {
isDiscardingTask: false) isDiscardingTask: false)
// Create the asynchronous task. // Create the asynchronous task.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -687,9 +686,6 @@ extension Task where Failure == Never {
initialSerialExecutor: initialSerialExecutor:
builtinSerialExecutor, builtinSerialExecutor,
operation: operation) operation: operation)
#else
let (task, _) = Builtin.createAsyncTask(flags, operation)
#endif
self._task = task self._task = task
#else #else
@@ -775,7 +771,6 @@ extension Task where Failure == Error {
isDiscardingTask: false) isDiscardingTask: false)
// Create the asynchronous task future. // Create the asynchronous task future.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -783,9 +778,6 @@ extension Task where Failure == Error {
initialSerialExecutor: initialSerialExecutor:
builtinSerialExecutor, builtinSerialExecutor,
operation: operation) operation: operation)
#else
let (task, _) = Builtin.createAsyncTask(flags, operation)
#endif
self._task = task self._task = task
#else #else
@@ -870,7 +862,6 @@ extension Task where Failure == Never {
isDiscardingTask: false) isDiscardingTask: false)
// Create the asynchronous task future. // Create the asynchronous task future.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -878,9 +869,6 @@ extension Task where Failure == Never {
initialSerialExecutor: initialSerialExecutor:
builtinSerialExecutor, builtinSerialExecutor,
operation: operation) operation: operation)
#else
let (task, _) = Builtin.createAsyncTask(flags, operation)
#endif
return Task(task) return Task(task)
#else #else
@@ -965,7 +953,6 @@ extension Task where Failure == Error {
isDiscardingTask: false) isDiscardingTask: false)
// Create the asynchronous task future. // Create the asynchronous task future.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -973,9 +960,6 @@ extension Task where Failure == Error {
initialSerialExecutor: initialSerialExecutor:
builtinSerialExecutor, builtinSerialExecutor,
operation: operation) operation: operation)
#else
let (task, _) = Builtin.createAsyncTask(flags, operation)
#endif
return Task(task) return Task(task)
#else #else

View File

@@ -47,7 +47,6 @@ extension TaskGroup {
isDiscardingTask: false) isDiscardingTask: false)
// Create the task in this group with an executor preference. // Create the task in this group with an executor preference.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -56,9 +55,6 @@ extension TaskGroup {
taskGroup: _group, taskGroup: _group,
initialTaskExecutorConsuming: taskExecutor, initialTaskExecutorConsuming: taskExecutor,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncTaskInGroupWithExecutor(flags, _group, executorBuiltin, operation)
#endif
} }
/// Adds a child task to the group and enqueue it on the specified executor, unless the group has been canceled. /// Adds a child task to the group and enqueue it on the specified executor, unless the group has been canceled.
@@ -98,7 +94,6 @@ extension TaskGroup {
isDiscardingTask: false) isDiscardingTask: false)
// Create the task in this group with an executor preference. // Create the task in this group with an executor preference.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -107,9 +102,6 @@ extension TaskGroup {
taskGroup: _group, taskGroup: _group,
initialTaskExecutorConsuming: taskExecutor, initialTaskExecutorConsuming: taskExecutor,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncTaskInGroupWithExecutor(flags, _group, executorBuiltin, operation)
#endif
return true return true
} }
} }
@@ -148,7 +140,6 @@ extension ThrowingTaskGroup {
isDiscardingTask: false) isDiscardingTask: false)
// Create the task in this group with an executor preference. // Create the task in this group with an executor preference.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -157,9 +148,6 @@ extension ThrowingTaskGroup {
taskGroup: _group, taskGroup: _group,
initialTaskExecutorConsuming: taskExecutor, initialTaskExecutorConsuming: taskExecutor,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncTaskInGroupWithExecutor(flags, _group, executorBuiltin, operation)
#endif
} }
/// Adds a child task to the group and enqueue it on the specified executor, unless the group has been canceled. /// Adds a child task to the group and enqueue it on the specified executor, unless the group has been canceled.
@@ -195,7 +183,6 @@ extension ThrowingTaskGroup {
isDiscardingTask: false) isDiscardingTask: false)
// Create the task in this group with an executor preference. // Create the task in this group with an executor preference.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -204,9 +191,6 @@ extension ThrowingTaskGroup {
taskGroup: _group, taskGroup: _group,
initialTaskExecutorConsuming: taskExecutor, initialTaskExecutorConsuming: taskExecutor,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncTaskInGroupWithExecutor(flags, _group, executorBuiltin, operation)
#endif
return true return true
} }
} }
@@ -245,7 +229,6 @@ extension DiscardingTaskGroup {
isDiscardingTask: true) isDiscardingTask: true)
// Create the task in this group with an executor preference. // Create the task in this group with an executor preference.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -254,9 +237,6 @@ extension DiscardingTaskGroup {
taskGroup: _group, taskGroup: _group,
initialTaskExecutorConsuming: taskExecutor, initialTaskExecutorConsuming: taskExecutor,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncDiscardingTaskInGroupWithExecutor(flags, _group, executorBuiltin, operation)
#endif
} }
/// Adds a child task to the group and set it up with the passed in task executor preference, /// Adds a child task to the group and set it up with the passed in task executor preference,
@@ -297,7 +277,6 @@ extension DiscardingTaskGroup {
) )
// Create the task in this group with an executor preference. // Create the task in this group with an executor preference.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -306,9 +285,6 @@ extension DiscardingTaskGroup {
taskGroup: _group, taskGroup: _group,
initialTaskExecutorConsuming: taskExecutor, initialTaskExecutorConsuming: taskExecutor,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncDiscardingTaskInGroupWithExecutor(flags, _group, executorBuiltin, operation)
#endif
return true return true
} }
} }
@@ -347,7 +323,6 @@ extension ThrowingDiscardingTaskGroup {
isDiscardingTask: true) isDiscardingTask: true)
// Create the task in this group with an executor preference. // Create the task in this group with an executor preference.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -356,9 +331,6 @@ extension ThrowingDiscardingTaskGroup {
taskGroup: _group, taskGroup: _group,
initialTaskExecutorConsuming: taskExecutor, initialTaskExecutorConsuming: taskExecutor,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncDiscardingTaskInGroupWithExecutor(flags, _group, executorBuiltin, operation)
#endif
} }
/// Adds a child task to the group and set it up with the passed in task executor preference, /// Adds a child task to the group and set it up with the passed in task executor preference,
@@ -399,7 +371,6 @@ extension ThrowingDiscardingTaskGroup {
) )
// Create the task in this group with an executor preference. // Create the task in this group with an executor preference.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
@@ -408,9 +379,6 @@ extension ThrowingDiscardingTaskGroup {
taskGroup: _group, taskGroup: _group,
initialTaskExecutorConsuming: taskExecutor, initialTaskExecutorConsuming: taskExecutor,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncDiscardingTaskInGroupWithExecutor(flags, _group, executorBuiltin, operation)
#endif
return true return true
} }
} }

View File

@@ -348,16 +348,12 @@ public struct TaskGroup<ChildTaskResult: Sendable> {
#endif #endif
// Create the task in this group. // Create the task in this group.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
_ = Builtin.createTask(flags: flags, _ = Builtin.createTask(flags: flags,
initialSerialExecutor: builtinSerialExecutor, initialSerialExecutor: builtinSerialExecutor,
taskGroup: _group, taskGroup: _group,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncTaskInGroup(flags, _group, operation)
#endif
#else #else
fatalError("Unsupported Swift compiler") fatalError("Unsupported Swift compiler")
#endif #endif
@@ -400,16 +396,12 @@ public struct TaskGroup<ChildTaskResult: Sendable> {
#endif #endif
// Create the task in this group. // Create the task in this group.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
_ = Builtin.createTask(flags: flags, _ = Builtin.createTask(flags: flags,
initialSerialExecutor: builtinSerialExecutor, initialSerialExecutor: builtinSerialExecutor,
taskGroup: _group, taskGroup: _group,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncTaskInGroup(flags, _group, operation)
#endif
return true return true
#else #else
@@ -510,16 +502,12 @@ public struct TaskGroup<ChildTaskResult: Sendable> {
isDiscardingTask: false) isDiscardingTask: false)
// Create the task in this group. // Create the task in this group.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
_ = Builtin.createTask(flags: flags, _ = Builtin.createTask(flags: flags,
initialSerialExecutor: builtinSerialExecutor, initialSerialExecutor: builtinSerialExecutor,
taskGroup: _group, taskGroup: _group,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncTaskInGroup(flags, _group, operation)
#endif
#else #else
fatalError("Unsupported Swift compiler") fatalError("Unsupported Swift compiler")
#endif #endif
@@ -560,16 +548,12 @@ public struct TaskGroup<ChildTaskResult: Sendable> {
isDiscardingTask: false) isDiscardingTask: false)
// Create the task in this group. // Create the task in this group.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
_ = Builtin.createTask(flags: flags, _ = Builtin.createTask(flags: flags,
initialSerialExecutor: builtinSerialExecutor, initialSerialExecutor: builtinSerialExecutor,
taskGroup: _group, taskGroup: _group,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncTaskInGroup(flags, _group, operation)
#endif
return true return true
#else #else
@@ -885,16 +869,12 @@ public struct ThrowingTaskGroup<ChildTaskResult: Sendable, Failure: Error> {
) )
// Create the task in this group. // Create the task in this group.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
_ = Builtin.createTask(flags: flags, _ = Builtin.createTask(flags: flags,
initialSerialExecutor: builtinSerialExecutor, initialSerialExecutor: builtinSerialExecutor,
taskGroup: _group, taskGroup: _group,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncTaskInGroup(flags, _group, operation)
#endif
#else #else
fatalError("Unsupported Swift compiler") fatalError("Unsupported Swift compiler")
#endif #endif
@@ -933,16 +913,12 @@ public struct ThrowingTaskGroup<ChildTaskResult: Sendable, Failure: Error> {
isDiscardingTask: false) isDiscardingTask: false)
// Create the task in this group. // Create the task in this group.
#if $BuiltinCreateTask
let builtinSerialExecutor = let builtinSerialExecutor =
Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor Builtin.extractFunctionIsolation(operation)?.unownedExecutor.executor
_ = Builtin.createTask(flags: flags, _ = Builtin.createTask(flags: flags,
initialSerialExecutor: builtinSerialExecutor, initialSerialExecutor: builtinSerialExecutor,
taskGroup: _group, taskGroup: _group,
operation: operation) operation: operation)
#else
_ = Builtin.createAsyncTaskInGroup(flags, _group, operation)
#endif
return true return true
#else #else