@@ -47,14 +47,14 @@ final class ActorQueueTests: XCTestCase {
47
47
XCTAssertNil ( weakCounter)
48
48
}
49
49
50
- func test_async_retainsAdoptedActorUntilEnqueuedTasksComplete ( ) async {
50
+ func test_enqueue_retainsAdoptedActorUntilEnqueuedTasksComplete ( ) async {
51
51
let systemUnderTest = ActorQueue < Counter > ( )
52
52
var counter : Counter ? = Counter ( )
53
53
weak var weakCounter = counter
54
54
systemUnderTest. adoptExecutionContext ( of: counter!)
55
55
56
56
let semaphore = Semaphore ( )
57
- systemUnderTest. async { counter in
57
+ systemUnderTest. enqueue { counter in
58
58
await semaphore. wait ( )
59
59
}
60
60
@@ -63,64 +63,64 @@ final class ActorQueueTests: XCTestCase {
63
63
await semaphore. signal ( )
64
64
}
65
65
66
- func test_async_taskParameterIsAdoptedActor ( ) async {
66
+ func test_enqueue_taskParameterIsAdoptedActor ( ) async {
67
67
let semaphore = Semaphore ( )
68
- systemUnderTest. async { counter in
68
+ systemUnderTest. enqueue { counter in
69
69
XCTAssertTrue ( counter === self . counter)
70
70
await semaphore. signal ( )
71
71
}
72
72
73
73
await semaphore. wait ( )
74
74
}
75
75
76
- func test_await_taskParameterIsAdoptedActor ( ) async {
77
- await systemUnderTest. await { counter in
76
+ func test_enqueueAndWait_taskParameterIsAdoptedActor ( ) async {
77
+ await systemUnderTest. enqueueAndWait { counter in
78
78
XCTAssertTrue ( counter === self . counter)
79
79
}
80
80
}
81
81
82
- func test_async_sendsEventsInOrder ( ) async {
82
+ func test_enqueue_sendsEventsInOrder ( ) async {
83
83
for iteration in 1 ... 1_000 {
84
- systemUnderTest. async { counter in
84
+ systemUnderTest. enqueue { counter in
85
85
counter. incrementAndExpectCount ( equals: iteration)
86
86
}
87
87
}
88
- await systemUnderTest. await { _ in /* Drain the queue */ }
88
+ await systemUnderTest. enqueueAndWait { _ in /* Drain the queue */ }
89
89
}
90
90
91
- func test_async_startsExecutionOfNextTaskAfterSuspension ( ) async {
91
+ func test_enqueue_startsExecutionOfNextTaskAfterSuspension ( ) async {
92
92
let systemUnderTest = ActorQueue < Semaphore > ( )
93
93
let semaphore = Semaphore ( )
94
94
systemUnderTest. adoptExecutionContext ( of: semaphore)
95
95
96
- systemUnderTest. async { semaphore in
96
+ systemUnderTest. enqueue { semaphore in
97
97
await semaphore. wait ( )
98
98
}
99
- systemUnderTest. async { semaphore in
99
+ systemUnderTest. enqueue { semaphore in
100
100
// Signal the semaphore from the actor queue.
101
101
// If the actor queue were FIFO, this test would hang since this code would never execute:
102
102
// we'd still be waiting for the prior `wait()` tasks to finish.
103
103
semaphore. signal ( )
104
104
}
105
- await systemUnderTest. await { _ in /* Drain the queue */ }
105
+ await systemUnderTest. enqueueAndWait { _ in /* Drain the queue */ }
106
106
}
107
107
108
- func test_await_allowsReentrancy ( ) async {
109
- await systemUnderTest. await { [ systemUnderTest] counter in
110
- await systemUnderTest. await { counter in
108
+ func test_enqueueAndWait_allowsReentrancy ( ) async {
109
+ await systemUnderTest. enqueueAndWait { [ systemUnderTest] counter in
110
+ await systemUnderTest. enqueueAndWait { counter in
111
111
counter. incrementAndExpectCount ( equals: 1 )
112
112
}
113
113
counter. incrementAndExpectCount ( equals: 2 )
114
114
}
115
115
}
116
116
117
- func test_async_executesEnqueuedTasksAfterReceiverIsDeallocated ( ) async {
117
+ func test_enqueue_executesEnqueuedTasksAfterReceiverIsDeallocated ( ) async {
118
118
var systemUnderTest : ActorQueue < Counter > ? = ActorQueue ( )
119
119
systemUnderTest? . adoptExecutionContext ( of: counter)
120
120
121
121
let expectation = self . expectation ( description: #function)
122
122
let semaphore = Semaphore ( )
123
- systemUnderTest? . async { counter in
123
+ systemUnderTest? . enqueue { counter in
124
124
// Make the task wait.
125
125
await semaphore. wait ( )
126
126
counter. incrementAndExpectCount ( equals: 1 )
@@ -136,7 +136,7 @@ final class ActorQueueTests: XCTestCase {
136
136
await waitForExpectations ( timeout: 1.0 )
137
137
}
138
138
139
- func test_async_doesNotRetainTaskAfterExecution ( ) async {
139
+ func test_enqueue_doesNotRetainTaskAfterExecution ( ) async {
140
140
final class Reference : Sendable { }
141
141
final class ReferenceHolder : @unchecked Sendable {
142
142
init ( ) {
@@ -157,14 +157,14 @@ final class ActorQueueTests: XCTestCase {
157
157
systemUnderTest. adoptExecutionContext ( of: syncSemaphore)
158
158
159
159
let expectation = self . expectation ( description: #function)
160
- systemUnderTest. async { [ reference = referenceHolder. reference] syncSemaphore in
160
+ systemUnderTest. enqueue { [ reference = referenceHolder. reference] syncSemaphore in
161
161
// Now that we've started the task and captured the reference, release the synchronous code.
162
162
syncSemaphore. signal ( )
163
163
// Wait for the synchronous setup to complete and the reference to be nil'd out.
164
164
await asyncSemaphore. wait ( )
165
165
// Retain the unsafe counter until the task is completed.
166
166
_ = reference
167
- systemUnderTest. async { _ in
167
+ systemUnderTest. enqueue { _ in
168
168
// Signal that this task has cleaned up.
169
169
// This closure will not execute until the prior closure completes.
170
170
expectation. fulfill ( )
@@ -182,9 +182,9 @@ final class ActorQueueTests: XCTestCase {
182
182
XCTAssertNil ( referenceHolder. weakReference)
183
183
}
184
184
185
- func test_await_sendsEventsInOrder ( ) async {
185
+ func test_enqueueAndWait_sendsEventsInOrder ( ) async {
186
186
for iteration in 1 ... 1_000 {
187
- systemUnderTest. async { counter in
187
+ systemUnderTest. enqueue { counter in
188
188
counter. incrementAndExpectCount ( equals: iteration)
189
189
}
190
190
@@ -193,26 +193,26 @@ final class ActorQueueTests: XCTestCase {
193
193
continue
194
194
}
195
195
196
- await systemUnderTest. await { counter in
196
+ await systemUnderTest. enqueueAndWait { counter in
197
197
XCTAssertEqual ( counter. count, iteration)
198
198
}
199
199
}
200
- await systemUnderTest. await { _ in /* Drain the queue */ }
200
+ await systemUnderTest. enqueueAndWait { _ in /* Drain the queue */ }
201
201
}
202
202
203
- func test_await_canReturn ( ) async {
203
+ func test_enqueueAndWait_canReturn ( ) async {
204
204
let expectedValue = UUID ( )
205
- let returnedValue = await systemUnderTest. await { _ in expectedValue }
205
+ let returnedValue = await systemUnderTest. enqueueAndWait { _ in expectedValue }
206
206
XCTAssertEqual ( expectedValue, returnedValue)
207
207
}
208
208
209
- func test_await_canThrow ( ) async {
209
+ func test_enqueueAndWait_canThrow ( ) async {
210
210
struct TestError : Error , Equatable {
211
211
private let identifier = UUID ( )
212
212
}
213
213
let expectedError = TestError ( )
214
214
do {
215
- try await systemUnderTest. await { _ in throw expectedError }
215
+ try await systemUnderTest. enqueueAndWait { _ in throw expectedError }
216
216
} catch {
217
217
XCTAssertEqual ( error as? TestError , expectedError)
218
218
}
0 commit comments