File tree Expand file tree Collapse file tree 1 file changed +13
-4
lines changed Expand file tree Collapse file tree 1 file changed +13
-4
lines changed Original file line number Diff line number Diff line change @@ -473,12 +473,14 @@ extension HTTPClient {
473473
474474 /// Cancels the request execution.
475475 public func cancel( ) {
476- self . lock. withLock {
476+ let channel : Channel ? = self . lock. withLock {
477477 if !cancelled {
478478 cancelled = true
479- channel ? . pipeline . fireUserInboundEventTriggered ( TaskCancelEvent ( ) )
479+ return self . channel
480480 }
481+ return nil
481482 }
483+ channel? . triggerUserOutboundEvent ( TaskCancelEvent ( ) , promise: nil )
482484 }
483485
484486 @discardableResult
@@ -732,12 +734,19 @@ extension TaskHandler: ChannelDuplexHandler {
732734 self . state = . end
733735 let error = HTTPClientError . readTimeout
734736 self . failTaskAndNotifyDelegate ( error: error, self . delegate. didReceiveError)
735- } else if ( event as? TaskCancelEvent ) != nil {
737+ } else {
738+ context. fireUserInboundEventTriggered ( event)
739+ }
740+ }
741+
742+ func triggerUserOutboundEvent( context: ChannelHandlerContext , event: Any , promise: EventLoopPromise < Void > ? ) {
743+ if ( event as? TaskCancelEvent ) != nil {
736744 self . state = . end
737745 let error = HTTPClientError . cancelled
738746 self . failTaskAndNotifyDelegate ( error: error, self . delegate. didReceiveError)
747+ promise? . succeed ( ( ) )
739748 } else {
740- context. fireUserInboundEventTriggered ( event)
749+ context. triggerUserOutboundEvent ( event, promise : promise )
741750 }
742751 }
743752
You can’t perform that action at this time.
0 commit comments