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 {
473
473
474
474
/// Cancels the request execution.
475
475
public func cancel( ) {
476
- self . lock. withLock {
476
+ let channel : Channel ? = self . lock. withLock {
477
477
if !cancelled {
478
478
cancelled = true
479
- channel ? . pipeline . fireUserInboundEventTriggered ( TaskCancelEvent ( ) )
479
+ return self . channel
480
480
}
481
+ return nil
481
482
}
483
+ channel? . triggerUserOutboundEvent ( TaskCancelEvent ( ) , promise: nil )
482
484
}
483
485
484
486
@discardableResult
@@ -732,12 +734,19 @@ extension TaskHandler: ChannelDuplexHandler {
732
734
self . state = . end
733
735
let error = HTTPClientError . readTimeout
734
736
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 {
736
744
self . state = . end
737
745
let error = HTTPClientError . cancelled
738
746
self . failTaskAndNotifyDelegate ( error: error, self . delegate. didReceiveError)
747
+ promise? . succeed ( ( ) )
739
748
} else {
740
- context. fireUserInboundEventTriggered ( event)
749
+ context. triggerUserOutboundEvent ( event, promise : promise )
741
750
}
742
751
}
743
752
You can’t perform that action at this time.
0 commit comments