@@ -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 ,  * )  
230232extension  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