mirror of
https://github.com/swift-server/async-http-client.git
synced 2026-05-03 07:32:29 +00:00
Always clear read idle timeout at the end of a request (#455)
This commit is contained in:
@@ -196,11 +196,13 @@ final class HTTP2ClientRequestHandler: ChannelDuplexHandler {
|
||||
case .failRequest(let error, let finalAction):
|
||||
self.request!.fail(error)
|
||||
self.request = nil
|
||||
self.runTimeoutAction(.clearIdleReadTimeoutTimer, context: context)
|
||||
self.runFinalAction(finalAction, context: context)
|
||||
|
||||
case .succeedRequest(let finalAction, let finalParts):
|
||||
self.request!.succeedRequest(finalParts)
|
||||
self.request = nil
|
||||
self.runTimeoutAction(.clearIdleReadTimeoutTimer, context: context)
|
||||
self.runFinalAction(finalAction, context: context)
|
||||
}
|
||||
}
|
||||
@@ -224,6 +226,7 @@ final class HTTP2ClientRequestHandler: ChannelDuplexHandler {
|
||||
assert(self.idleReadTimeoutTimer == nil, "Expected there is no timeout timer so far.")
|
||||
|
||||
self.idleReadTimeoutTimer = self.eventLoop.scheduleTask(in: timeAmount) {
|
||||
guard self.idleReadTimeoutTimer != nil else { return }
|
||||
let action = self.state.idleReadTimeoutTriggered()
|
||||
self.run(action, context: context)
|
||||
}
|
||||
@@ -234,10 +237,10 @@ final class HTTP2ClientRequestHandler: ChannelDuplexHandler {
|
||||
}
|
||||
|
||||
self.idleReadTimeoutTimer = self.eventLoop.scheduleTask(in: timeAmount) {
|
||||
guard self.idleReadTimeoutTimer != nil else { return }
|
||||
let action = self.state.idleReadTimeoutTriggered()
|
||||
self.run(action, context: context)
|
||||
}
|
||||
|
||||
case .clearIdleReadTimeoutTimer:
|
||||
if let oldTimer = self.idleReadTimeoutTimer {
|
||||
self.idleReadTimeoutTimer = nil
|
||||
|
||||
Reference in New Issue
Block a user