@@ -40,15 +40,12 @@ extension TaskGroup {
4040 guard let taskExecutor else {
4141 return self . addTask ( priority: priority, operation: operation)
4242 }
43- #if $BuiltinCreateAsyncTaskInGroupWithExecutor
4443 let flags = taskCreateFlags (
4544 priority: priority, isChildTask: true , copyTaskLocals: false ,
4645 inheritContext: false , enqueueJob: true ,
4746 addPendingGroupTaskUnconditionally: true ,
4847 isDiscardingTask: false )
4948
50- // Create the task in this group with an executor preference.
51- #if $BuiltinCreateTask
5249 let builtinSerialExecutor =
5350 Builtin . extractFunctionIsolation ( operation) ? . unownedExecutor. executor
5451
@@ -59,7 +56,14 @@ extension TaskGroup {
5956 initialTaskExecutorConsuming: taskExecutor,
6057 operation: operation)
6158#else
62- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskOwnedTaskExecutor " )
59+ let executorBuiltin : Builtin . Executor =
60+ taskExecutor. asUnownedTaskExecutor ( ) . executor
61+
62+ _ = Builtin . createTask ( flags: flags,
63+ initialSerialExecutor: builtinSerialExecutor,
64+ taskGroup: _group,
65+ initialTaskExecutor: executorBuiltin,
66+ operation: operation)
6367#endif
6468 }
6569
@@ -109,10 +113,18 @@ extension TaskGroup {
109113 taskGroup: _group,
110114 initialTaskExecutorConsuming: taskExecutor,
111115 operation: operation)
112- return true
113116#else
114- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskOwnedTaskExecutor " )
117+ let executorBuiltin : Builtin . Executor =
118+ taskExecutor. asUnownedTaskExecutor ( ) . executor
119+
120+ _ = Builtin . createTask ( flags: flags,
121+ initialSerialExecutor: builtinSerialExecutor,
122+ taskGroup: _group,
123+ initialTaskExecutor: executorBuiltin,
124+ operation: operation)
115125#endif
126+
127+ return true
116128 }
117129}
118130
@@ -160,7 +172,14 @@ extension ThrowingTaskGroup {
160172 initialTaskExecutorConsuming: taskExecutor,
161173 operation: operation)
162174#else
163- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskOwnedTaskExecutor " )
175+ let executorBuiltin : Builtin . Executor =
176+ taskExecutor. asUnownedTaskExecutor ( ) . executor
177+
178+ _ = Builtin . createTask ( flags: flags,
179+ initialSerialExecutor: builtinSerialExecutor,
180+ taskGroup: _group,
181+ initialTaskExecutor: executorBuiltin,
182+ operation: operation)
164183#endif
165184 }
166185
@@ -206,10 +225,18 @@ extension ThrowingTaskGroup {
206225 taskGroup: _group,
207226 initialTaskExecutorConsuming: taskExecutor,
208227 operation: operation)
209- return true
210228#else
211- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskOwnedTaskExecutor " )
229+ let executorBuiltin : Builtin . Executor =
230+ taskExecutor. asUnownedTaskExecutor ( ) . executor
231+
232+ _ = Builtin . createTask ( flags: flags,
233+ initialSerialExecutor: builtinSerialExecutor,
234+ taskGroup: _group,
235+ initialTaskExecutor: executorBuiltin,
236+ operation: operation)
212237#endif
238+
239+ return true
213240 }
214241}
215242
@@ -257,7 +284,14 @@ extension DiscardingTaskGroup {
257284 initialTaskExecutorConsuming: taskExecutor,
258285 operation: operation)
259286#else
260- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskOwnedTaskExecutor " )
287+ let executorBuiltin : Builtin . Executor =
288+ taskExecutor. asUnownedTaskExecutor ( ) . executor
289+
290+ _ = Builtin . createTask ( flags: flags,
291+ initialSerialExecutor: builtinSerialExecutor,
292+ taskGroup: _group,
293+ initialTaskExecutor: executorBuiltin,
294+ operation: operation)
261295#endif
262296 }
263297
@@ -308,10 +342,18 @@ extension DiscardingTaskGroup {
308342 taskGroup: _group,
309343 initialTaskExecutorConsuming: taskExecutor,
310344 operation: operation)
311- return true
312345#else
313- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskOwnedTaskExecutor " )
346+ let executorBuiltin : Builtin . Executor =
347+ taskExecutor. asUnownedTaskExecutor ( ) . executor
348+
349+ _ = Builtin . createTask ( flags: flags,
350+ initialSerialExecutor: builtinSerialExecutor,
351+ taskGroup: _group,
352+ initialTaskExecutor: executorBuiltin,
353+ operation: operation)
314354#endif
355+
356+ return true
315357 }
316358}
317359
@@ -359,7 +401,14 @@ extension ThrowingDiscardingTaskGroup {
359401 initialTaskExecutorConsuming: taskExecutor,
360402 operation: operation)
361403#else
362- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskOwnedTaskExecutor " )
404+ let executorBuiltin : Builtin . Executor =
405+ taskExecutor. asUnownedTaskExecutor ( ) . executor
406+
407+ _ = Builtin . createTask ( flags: flags,
408+ initialSerialExecutor: builtinSerialExecutor,
409+ taskGroup: _group,
410+ initialTaskExecutor: executorBuiltin,
411+ operation: operation)
363412#endif
364413 }
365414
@@ -410,10 +459,18 @@ extension ThrowingDiscardingTaskGroup {
410459 taskGroup: _group,
411460 initialTaskExecutorConsuming: taskExecutor,
412461 operation: operation)
413- return true
414462#else
415- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskOwnedTaskExecutor " )
463+ let executorBuiltin : Builtin . Executor =
464+ taskExecutor. asUnownedTaskExecutor ( ) . executor
465+
466+ _ = Builtin . createTask ( flags: flags,
467+ initialSerialExecutor: builtinSerialExecutor,
468+ taskGroup: _group,
469+ initialTaskExecutor: executorBuiltin,
470+ operation: operation)
416471#endif
472+
473+ return true
417474 }
418475}
419476
0 commit comments