@@ -149,20 +149,22 @@ private struct BaseClientCodec {
149149
150150 case ( . data( var data) , . none) :
151151 data. endStream = true
152- let flushPromise = self . mergeEndPromiseAndPendingPromise ( promise)
153- return ( . init( . data( data) , flushPromise) , nil )
152+ var pendingPromise = self . pendingFrameWrite!. promise
153+ pendingPromise. setOrCascade ( to: promise)
154+ return ( . init( . data( data) , pendingPromise) , nil )
154155
155156 case ( . data( let data) , . some( let trailers) ) :
156- let trailers = self . makeH2TrailerFramePayload ( trailers)
157+ let trailerFrame = self . makeH2TrailerFramePayload ( trailers)
157158 return (
158159 . init( . data( data) , self . pendingFrameWrite!. promise) ,
159- . init( trailers , promise)
160+ . init( trailerFrame , promise)
160161 )
161162
162163 case ( . headers( var headers) , . none) :
163164 headers. endStream = true
164- let flushPromise = self . mergeEndPromiseAndPendingPromise ( promise)
165- return ( . init( . headers( headers) , flushPromise) , nil )
165+ var pendingPromise = self . pendingFrameWrite!. promise
166+ pendingPromise. setOrCascade ( to: promise)
167+ return ( . init( . headers( headers) , pendingPromise) , nil )
166168
167169 case ( . headers( let headers) , . some( let trailers) ) :
168170 let trailers = self . makeH2TrailerFramePayload ( trailers)
@@ -194,22 +196,6 @@ private struct BaseClientCodec {
194196 )
195197 )
196198 }
197-
198- private func mergeEndPromiseAndPendingPromise( _ endPromise: EventLoopPromise < Void > ? ) -> EventLoopPromise < Void > ? {
199- // We only need to merge, if there is an outstanding frame write. Therefore we can bang
200- // the frame write here.
201- switch ( self . pendingFrameWrite!. promise, endPromise) {
202- case ( . none, . none) :
203- return nil
204- case ( . some( let pending) , . none) :
205- return pending
206- case ( . none, . some( let end) ) :
207- return end
208- case ( . some( let pending) , . some( let end) ) :
209- pending. futureResult. cascade ( to: end)
210- return pending
211- }
212- }
213199}
214200
215201/// A simple channel handler that translates HTTP/2 concepts into HTTP/1 data types,
0 commit comments