@@ -229,23 +229,25 @@ extension Task where Failure == Never {
229
229
self = Self . init ( priority: priority, operation: operation)
230
230
return
231
231
}
232
- #if $BuiltinCreateAsyncTaskWithExecutor && $BuiltinCreateTask
233
232
// Set up the job flags for a new task.
234
233
let flags = taskCreateFlags (
235
234
priority: priority, isChildTask: false , copyTaskLocals: true ,
236
235
inheritContext: true , enqueueJob: true ,
237
236
addPendingGroupTaskUnconditionally: false ,
238
237
isDiscardingTask: false )
239
238
239
+ #if $BuiltinCreateAsyncTaskOwnedTaskExecutor
240
240
let ( task, _) = Builtin . createTask (
241
241
flags: flags,
242
242
initialTaskExecutorConsuming: taskExecutor,
243
243
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
245
250
self . _task = task
246
- #else
247
- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskWithExecutor or $BuiltinCreateTask " )
248
- #endif
249
251
}
250
252
}
251
253
@@ -289,23 +291,25 @@ extension Task where Failure == Error {
289
291
self = Self . init ( priority: priority, operation: operation)
290
292
return
291
293
}
292
- #if $BuiltinCreateAsyncTaskWithExecutor && $BuiltinCreateTask
293
294
// Set up the job flags for a new task.
294
295
let flags = taskCreateFlags (
295
296
priority: priority, isChildTask: false , copyTaskLocals: true ,
296
297
inheritContext: true , enqueueJob: true ,
297
298
addPendingGroupTaskUnconditionally: false ,
298
299
isDiscardingTask: false )
299
300
301
+ #if $BuiltinCreateAsyncTaskOwnedTaskExecutor
300
302
let ( task, _) = Builtin . createTask (
301
303
flags: flags,
302
304
initialTaskExecutorConsuming: taskExecutor,
303
305
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
305
312
self . _task = task
306
- #else
307
- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskWithExecutor or $BuiltinCreateTask " )
308
- #endif
309
313
}
310
314
}
311
315
@@ -347,24 +351,25 @@ extension Task where Failure == Never {
347
351
guard let taskExecutor else {
348
352
return Self . detached ( priority: priority, operation: operation)
349
353
}
350
- #if $BuiltinCreateAsyncTaskWithExecutor && $BuiltinCreateTask
351
354
// Set up the job flags for a new task.
352
355
let flags = taskCreateFlags (
353
356
priority: priority, isChildTask: false , copyTaskLocals: false ,
354
357
inheritContext: false , enqueueJob: true ,
355
358
addPendingGroupTaskUnconditionally: false ,
356
359
isDiscardingTask: false )
357
360
361
+ #if $BuiltinCreateAsyncTaskOwnedTaskExecutor
358
362
let ( task, _) = Builtin . createTask (
359
363
flags: flags,
360
- // initialTaskExecutor: executorBuiltin, deprecated
361
364
initialTaskExecutorConsuming: taskExecutor,
362
365
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
364
372
return Task ( task)
365
- #else
366
- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskWithExecutor or $BuiltinCreateTask " )
367
- #endif
368
373
}
369
374
}
370
375
@@ -406,23 +411,25 @@ extension Task where Failure == Error {
406
411
guard let taskExecutor else {
407
412
return Self . detached ( priority: priority, operation: operation)
408
413
}
409
- #if $BuiltinCreateAsyncTaskWithExecutor && $BuiltinCreateTask
410
414
// Set up the job flags for a new task.
411
415
let flags = taskCreateFlags (
412
416
priority: priority, isChildTask: false , copyTaskLocals: false ,
413
417
inheritContext: false , enqueueJob: true ,
414
418
addPendingGroupTaskUnconditionally: false ,
415
419
isDiscardingTask: false )
416
420
421
+ #if $BuiltinCreateAsyncTaskOwnedTaskExecutor
417
422
let ( task, _) = Builtin . createTask (
418
423
flags: flags,
419
424
initialTaskExecutorConsuming: taskExecutor,
420
425
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
422
432
return Task ( task)
423
- #else
424
- fatalError ( " Unsupported Swift compiler, missing support for BuiltinCreateAsyncTaskWithExecutor or $BuiltinCreateTask " )
425
- #endif
426
433
}
427
434
}
428
435
0 commit comments