forked from swiftlang/swift
- Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathasync_task_naming.swift
115 lines (103 loc) · 3.63 KB
/
async_task_naming.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
// RUN: %target-run-simple-swift( -Xfrontend -disable-availability-checking) | %FileCheck %s
// REQUIRES: executable_test
// REQUIRES: concurrency
// REQUIRES: concurrency_runtime
// UNSUPPORTED: back_deployment_runtime
func pretendToThrow()throws{}
func test()async{
// CHECK: Task.name = NONE OK
print("Task.name = \(Task.name ??"NONE OK")")
_ =awaitTask(name:"Caplin the Task"){
// CHECK: Task.name = Caplin the Task
print("Task.name = \(Task.name ??"NONE")")
return12
}.value
_ =try?awaitTask(name:"Caplin the Throwing Task"){
// CHECK: Task.name = Caplin the Throwing Task
print("Task.name = \(Task.name ??"NONE")")
trypretendToThrow()
awaitTask{
// CHECK: Does not inherit Task.name = NONE OK
print("Does not inherit Task.name = \(Task.name ??"NONE OK")")
}.value
return12
}.value
_ =awaitTask.detached(name:"Caplin the Detached Task"){
// CHECK: Task.name = Caplin the Detached Task
print("Task.name = \(Task.name ??"NONE")")
return12
}.value
_ =try?awaitTask.detached(name:"Caplin the Detached Throwing Task"){
// CHECK: Task.name = Caplin the Detached Throwing Task
print("Task.name = \(Task.name ??"NONE")")
trypretendToThrow()
return12
}.value
_ =awaitwithTaskGroup(of:Int.self){ g in
g.addTask(
name:"Caplin the TaskGroup Task",
executorPreference:nil){
// CHECK: Task.name = Caplin the TaskGroup Task
print("Task.name = \(Task.name ??"NONE")")
return12
}
_ =await g.next()
_ = g.addTaskUnlessCancelled(
name:"Caplin the TaskGroup Task (unless cancelled)",
executorPreference:nil){
// CHECK: Task.name = Caplin the TaskGroup Task (unless cancelled)
print("Task.name = \(Task.name ??"NONE")")
return12
}
}
_ =awaitwithThrowingTaskGroup(of:Int.self){ g in
g.addTask(
name:"Caplin the ThrowingTaskGroup Task",
executorPreference:nil){
// CHECK: Task.name = Caplin the ThrowingTaskGroup Task
print("Task.name = \(Task.name ??"NONE")")
return12
}
_ =try?await g.next()
_ = g.addTaskUnlessCancelled(
name:"Caplin the ThrowingTaskGroup Task (unless cancelled)",
executorPreference:nil){
// CHECK: Task.name = Caplin the ThrowingTaskGroup Task (unless cancelled)
print("Task.name = \(Task.name ??"NONE")")
return12
}
}
_ =awaitwithDiscardingTaskGroup{ g in
g.addTask(
name:"Caplin the DiscardingTaskGroup Task",
executorPreference:nil){
// CHECK: Task.name = Caplin the DiscardingTaskGroup Task
print("Task.name = \(Task.name ??"NONE")")
}
}
_ =awaitwithDiscardingTaskGroup{ g in
_ = g.addTaskUnlessCancelled(
name:"Caplin the DiscardingTaskGroup Task (unless cancelled)",
executorPreference:nil){
// CHECK: Task.name = Caplin the DiscardingTaskGroup Task (unless cancelled)
print("Task.name = \(Task.name ??"NONE")")
}
}
_ =try?awaitwithThrowingDiscardingTaskGroup{ g in
g.addTask(
name:"Caplin the ThrowingDiscardingTaskGroup Task",
executorPreference:nil){
// CHECK: Task.name = Caplin the ThrowingDiscardingTaskGroup Task
print("Task.name = \(Task.name ??"NONE")")
}
}
_ =try?awaitwithThrowingDiscardingTaskGroup{ g in
_ = g.addTaskUnlessCancelled(
name:"Caplin the ThrowingDiscardingTaskGroup Task (unless cancelled)",
executorPreference:nil){
// CHECK: Task.name = Caplin the ThrowingDiscardingTaskGroup Task (unless cancelled)
print("Task.name = \(Task.name ??"NONE")")
}
}
}
awaittest()