3
3
// REQUIRES: executable_test
4
4
// REQUIRES: concurrency
5
5
6
- // rdar://76038845
7
6
// REQUIRES: concurrency_runtime
8
7
// UNSUPPORTED: back_deployment_runtime
9
8
10
- import Dispatch
11
-
12
9
@available ( SwiftStdlib 6 . 0 , * )
13
10
func test_withTaskGroup_addUnlessCancelled( ) async throws {
14
11
let task = Task {
15
12
await withTaskGroup ( of: Void . self) { group in
16
13
print ( " Inner: Sleep... " )
17
- try ? await Task . sleep ( nanoseconds : 2_000_000_000 )
14
+ try ? await Task . sleep ( for : . seconds ( 60 ) ) // we'll never actually wait 10 seconds, as this will be woken up by cancel
18
15
print ( " Inner: Task.isCancelled: \( Task . isCancelled) " )
19
16
20
17
let added = group. addTaskUnlessCancelled {
21
18
print ( " Added Task! Child Task.isCancelled: \( Task . isCancelled) " )
22
19
}
23
- print ( " Inner: Task added = \( added) " ) // CHECK: Task added = false
20
+ print ( " Inner: Task added = \( added) " ) // CHECK: Inner: Task added = false
24
21
}
25
22
}
26
23
27
- try ? await Task . sleep ( nanoseconds: 1_000_000 )
28
24
print ( " Outer: Cancel! " )
29
25
task. cancel ( )
30
26
print ( " Outer: Cancelled " )
@@ -37,17 +33,16 @@ func test_withDiscardingTaskGroup_addUnlessCancelled() async throws {
37
33
let task = Task {
38
34
await withDiscardingTaskGroup { group in
39
35
print ( " Inner: Sleep... " )
40
- try ? await Task . sleep ( nanoseconds : 2_000_000_000 )
36
+ try ? await Task . sleep ( for : . seconds ( 60 ) ) // we'll never actually wait 10 seconds, as this will be woken up by cancel
41
37
print ( " Inner: Task.isCancelled: \( Task . isCancelled) " )
42
38
43
39
let added = group. addTaskUnlessCancelled {
44
40
print ( " Added Task! Child Task.isCancelled: \( Task . isCancelled) " )
45
41
}
46
- print ( " Inner: Task added = \( added) " ) // CHECK: Task added = false
42
+ print ( " Inner: Task added = \( added) " ) // CHECK: Inner: Task added = false
47
43
}
48
44
}
49
45
50
- try ? await Task . sleep ( nanoseconds: 1_000_000 )
51
46
print ( " Outer: Cancel! " )
52
47
task. cancel ( )
53
48
print ( " Outer: Cancelled " )
0 commit comments