@@ -119,7 +119,9 @@ extension DirectoryEntries {
119
119
public struct BatchedIterator : AsyncIteratorProtocol {
120
120
private var iterator : BufferedOrAnyStream < [ DirectoryEntry ] , DirectoryEntryProducer > . AsyncIterator
121
121
122
- fileprivate init ( wrapping iterator: BufferedOrAnyStream < [ DirectoryEntry ] , DirectoryEntryProducer > . AsyncIterator ) {
122
+ fileprivate init (
123
+ wrapping iterator: BufferedOrAnyStream < [ DirectoryEntry ] , DirectoryEntryProducer > . AsyncIterator
124
+ ) {
123
125
self . iterator = iterator
124
126
}
125
127
@@ -136,15 +138,23 @@ extension DirectoryEntries.Batched.AsyncIterator: Sendable {}
136
138
// MARK: - Internal
137
139
138
140
@available ( macOS 10 . 15 , iOS 13 . 0 , watchOS 6 . 0 , tvOS 13 . 0 , * )
139
- extension NIOThrowingAsyncSequenceProducer where Element == [ DirectoryEntry ] , Failure == Error ,
140
- Strategy == NIOAsyncSequenceProducerBackPressureStrategies . HighLowWatermark , Delegate == DirectoryEntryProducer {
141
+ extension NIOThrowingAsyncSequenceProducer
142
+ where
143
+ Element == [ DirectoryEntry ] ,
144
+ Failure == ( any Error ) ,
145
+ Strategy == NIOAsyncSequenceProducerBackPressureStrategies . HighLowWatermark ,
146
+ Delegate == DirectoryEntryProducer
147
+ {
141
148
fileprivate static func makeBatchedDirectoryEntryStream(
142
149
handle: SystemFileHandle ,
143
150
recursive: Bool ,
144
151
entriesPerBatch: Int ,
145
152
lowWatermark: Int ,
146
153
highWatermark: Int
147
- ) -> NIOThrowingAsyncSequenceProducer < [ DirectoryEntry ] , any Error , NIOAsyncSequenceProducerBackPressureStrategies . HighLowWatermark , DirectoryEntryProducer > {
154
+ ) -> NIOThrowingAsyncSequenceProducer <
155
+ [ DirectoryEntry ] , any Error , NIOAsyncSequenceProducerBackPressureStrategies . HighLowWatermark ,
156
+ DirectoryEntryProducer
157
+ > {
148
158
let producer = DirectoryEntryProducer (
149
159
handle: handle,
150
160
recursive: recursive,
@@ -168,10 +178,12 @@ extension NIOThrowingAsyncSequenceProducer where Element == [DirectoryEntry], Fa
168
178
}
169
179
170
180
@available ( macOS 10 . 15 , iOS 13 . 0 , watchOS 6 . 0 , tvOS 13 . 0 , * )
171
- fileprivate typealias DirectoryEntrySequenceProducer = NIOThrowingAsyncSequenceProducer < [ DirectoryEntry ] , Error , NIOAsyncSequenceProducerBackPressureStrategies . HighLowWatermark , DirectoryEntryProducer >
181
+ private typealias DirectoryEntrySequenceProducer = NIOThrowingAsyncSequenceProducer <
182
+ [ DirectoryEntry ] , Error , NIOAsyncSequenceProducerBackPressureStrategies . HighLowWatermark , DirectoryEntryProducer
183
+ >
172
184
173
185
@available ( macOS 10 . 15 , iOS 13 . 0 , watchOS 6 . 0 , tvOS 13 . 0 , * )
174
- fileprivate final class DirectoryEntryProducer : NIOAsyncSequenceProducerDelegate {
186
+ private final class DirectoryEntryProducer : NIOAsyncSequenceProducerDelegate {
175
187
let state : NIOLockedValueBox < DirectoryEnumerator >
176
188
let entriesPerBatch : Int
177
189
@@ -262,17 +274,16 @@ fileprivate final class DirectoryEntryProducer: NIOAsyncSequenceProducerDelegate
262
274
// error.
263
275
self . close ( )
264
276
let source = self . state. withLockedValue { state in
265
- return state. sequenceProducerSource
277
+ state. sequenceProducerSource
266
278
}
267
279
source? . finish ( error)
268
280
self . clearSource ( )
269
281
}
270
282
}
271
283
272
284
private func onNextBatch( _ entries: [ DirectoryEntry ] ) {
273
-
274
285
let source = self . state. withLockedValue { state in
275
- return state. sequenceProducerSource
286
+ state. sequenceProducerSource
276
287
}
277
288
278
289
guard let source else {
@@ -412,7 +423,6 @@ private struct DirectoryEnumerator: Sendable {
412
423
case let . open( threadPool, _, _) :
413
424
return threadPool
414
425
case . openPausedProducing( let threadPool, let source, let array) :
415
- self . state = . modifying
416
426
self . state = . open( threadPool, source, array)
417
427
return threadPool
418
428
case . done:
@@ -424,13 +434,12 @@ private struct DirectoryEnumerator: Sendable {
424
434
425
435
internal mutating func pauseProducing( ) {
426
436
switch self . state {
427
- case . open( let nIOThreadPool, let source, let array) :
428
- self . state = . modifying
429
- self . state = . openPausedProducing( nIOThreadPool, source, array)
437
+ case . open( let threadPool, let source, let array) :
438
+ self . state = . openPausedProducing( threadPool, source, array)
430
439
case . idle:
431
- ( ) // we won't apply back pressure until something has been read
440
+ ( ) // we won't apply back pressure until something has been read
432
441
case . openPausedProducing, . done:
433
- ( ) // no-op
442
+ ( ) // no-op
434
443
case . modifying:
435
444
fatalError ( )
436
445
}
0 commit comments