Skip to content

Commit 80ba6dd

Browse files
committed
Weakifies outerSink in innerSink
1 parent 844178e commit 80ba6dd

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

Sources/Operators/ConcatMap.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ private extension Publishers.ConcatMap {
111111
) {
112112
self.downstream = downstream
113113
self.transform = transform
114+
114115
upstream.subscribe(self)
115116
}
116117

@@ -168,7 +169,7 @@ private extension Publishers.ConcatMap {
168169
Downstream.Input == NewPublisher.Output,
169170
Downstream.Failure == Upstream.Failure
170171
{
171-
private let outerSink: OuterSink<Downstream>
172+
private weak var outerSink: OuterSink<Downstream>?
172173
private let lock: NSRecursiveLock = NSRecursiveLock()
173174

174175
private var hasActiveSubscription: Bool
@@ -199,7 +200,7 @@ private extension Publishers.ConcatMap {
199200
}
200201

201202
override func receive(_ input: NewPublisher.Output) -> Subscribers.Demand {
202-
return buffer.buffer(value: input)
203+
buffer.buffer(value: input)
203204
}
204205

205206
override func receive(subscription: Combine.Subscription) {
@@ -219,8 +220,9 @@ private extension Publishers.ConcatMap {
219220
if !publisherQueue.isEmpty {
220221
publisherQueue.removeFirst().subscribe(self)
221222
}
222-
case .failure:
223-
outerSink.receive(completion: completion)
223+
case let .failure(error):
224+
buffer.complete(completion: .failure(error))
225+
outerSink?.receive(completion: completion)
224226
}
225227
}
226228
}
@@ -229,7 +231,7 @@ private extension Publishers.ConcatMap {
229231
@available(OSX 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
230232
extension Publishers.ConcatMap.Subscription: CustomStringConvertible {
231233
var description: String {
232-
return "ConcatMap.Subscription<\(Downstream.Input.self), \(Downstream.Failure.self)>"
234+
"ConcatMap.Subscription<\(Downstream.Input.self), \(Downstream.Failure.self)>"
233235
}
234236
}
235237
#endif

0 commit comments

Comments
 (0)