@@ -229,23 +229,25 @@ extension Task where Failure == Never {
229229 self = Self . init ( priority: priority, operation: operation)
230230 return
231231 }
232- #if $BuiltinCreateAsyncTaskWithExecutor && $BuiltinCreateTask
233232 // Set up the job flags for a new task.
234233 let flags = taskCreateFlags (
235234 priority: priority, isChildTask: false , copyTaskLocals: true ,
236235 inheritContext: true , enqueueJob: true ,
237236 addPendingGroupTaskUnconditionally: false ,
238237 isDiscardingTask: false )
239238
239+ #if $BuiltinCreateAsyncTaskOwnedTaskExecutor
240240 let ( task, _) = Builtin . createTask (
241241 flags: flags,
242242 initialTaskExecutorConsuming: taskExecutor,
243243 operation: operation)
244-
244+ #else
245+ let executorBuiltin : Builtin . Executor =
246+ taskExecutor. asUnownedTaskExecutor ( ) . executor
247+ let ( task, _) = Builtin . createAsyncTaskWithExecutor (
248+ flags, executorBuiltin, operation)
249+ #endif
245250 self . _task = task
246- #else
247- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskWithExecutor or $BuiltinCreateTask " )
248- #endif
249251 }
250252}
251253
@@ -289,23 +291,25 @@ extension Task where Failure == Error {
289291 self = Self . init ( priority: priority, operation: operation)
290292 return
291293 }
292- #if $BuiltinCreateAsyncTaskWithExecutor && $BuiltinCreateTask
293294 // Set up the job flags for a new task.
294295 let flags = taskCreateFlags (
295296 priority: priority, isChildTask: false , copyTaskLocals: true ,
296297 inheritContext: true , enqueueJob: true ,
297298 addPendingGroupTaskUnconditionally: false ,
298299 isDiscardingTask: false )
299300
301+ #if $BuiltinCreateAsyncTaskOwnedTaskExecutor
300302 let ( task, _) = Builtin . createTask (
301303 flags: flags,
302304 initialTaskExecutorConsuming: taskExecutor,
303305 operation: operation)
304-
306+ #else
307+ let executorBuiltin : Builtin . Executor =
308+ taskExecutor. asUnownedTaskExecutor ( ) . executor
309+ let ( task, _) = Builtin . createAsyncTaskWithExecutor (
310+ flags, executorBuiltin, operation)
311+ #endif
305312 self . _task = task
306- #else
307- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskWithExecutor or $BuiltinCreateTask " )
308- #endif
309313 }
310314}
311315
@@ -347,24 +351,25 @@ extension Task where Failure == Never {
347351 guard let taskExecutor else {
348352 return Self . detached ( priority: priority, operation: operation)
349353 }
350- #if $BuiltinCreateAsyncTaskWithExecutor && $BuiltinCreateTask
351354 // Set up the job flags for a new task.
352355 let flags = taskCreateFlags (
353356 priority: priority, isChildTask: false , copyTaskLocals: false ,
354357 inheritContext: false , enqueueJob: true ,
355358 addPendingGroupTaskUnconditionally: false ,
356359 isDiscardingTask: false )
357360
361+ #if $BuiltinCreateAsyncTaskOwnedTaskExecutor
358362 let ( task, _) = Builtin . createTask (
359363 flags: flags,
360- // initialTaskExecutor: executorBuiltin, deprecated
361364 initialTaskExecutorConsuming: taskExecutor,
362365 operation: operation)
363-
366+ #else
367+ let executorBuiltin : Builtin . Executor =
368+ taskExecutor. asUnownedTaskExecutor ( ) . executor
369+ let ( task, _) = Builtin . createAsyncTaskWithExecutor (
370+ flags, executorBuiltin, operation)
371+ #endif
364372 return Task ( task)
365- #else
366- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskWithExecutor or $BuiltinCreateTask " )
367- #endif
368373 }
369374}
370375
@@ -406,23 +411,25 @@ extension Task where Failure == Error {
406411 guard let taskExecutor else {
407412 return Self . detached ( priority: priority, operation: operation)
408413 }
409- #if $BuiltinCreateAsyncTaskWithExecutor && $BuiltinCreateTask
410414 // Set up the job flags for a new task.
411415 let flags = taskCreateFlags (
412416 priority: priority, isChildTask: false , copyTaskLocals: false ,
413417 inheritContext: false , enqueueJob: true ,
414418 addPendingGroupTaskUnconditionally: false ,
415419 isDiscardingTask: false )
416420
421+ #if $BuiltinCreateAsyncTaskOwnedTaskExecutor
417422 let ( task, _) = Builtin . createTask (
418423 flags: flags,
419424 initialTaskExecutorConsuming: taskExecutor,
420425 operation: operation)
421-
426+ #else
427+ let executorBuiltin : Builtin . Executor =
428+ taskExecutor. asUnownedTaskExecutor ( ) . executor
429+ let ( task, _) = Builtin . createAsyncTaskWithExecutor (
430+ flags, executorBuiltin, operation)
431+ #endif
422432 return Task ( task)
423- #else
424- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskWithExecutor or $BuiltinCreateTask " )
425- #endif
426433 }
427434}
428435
0 commit comments