Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ResolveTimeouts ¶
func ResolveTimeouts(cfg TimeoutConfig) (idleTimeout, hardCeiling time.Duration)
ResolveTimeouts determines the idle timeout and hard ceiling from config.
Precedence (highest to lowest):
- IdleTimeout explicitly set -> idle = IdleTimeout, ceiling = RequestTimeout (or 60m)
- AutoExtendTimeout = true -> idle = RequestTimeout, ceiling = MaxRequestTimeout (legacy compat)
- Neither set -> idle = 0 (disabled), ceiling = RequestTimeout (fixed timeout)
Returns (idleTimeout, hardCeiling). idleTimeout=0 means disabled (fixed timeout).
Types ¶
type ExtendableDeadline ¶
type ExtendableDeadline struct {
// contains filtered or unexported fields
}
ExtendableDeadline wraps a context with a deadline that can be extended when agent activity is detected, up to a maximum absolute timeout.
func New ¶
func New(parent context.Context, idleTimeout, maxTimeout time.Duration) (context.Context, *ExtendableDeadline)
New creates a new ExtendableDeadline. idleTimeout is the initial (and per-extension) timeout duration for inactivity. maxTimeout is the absolute maximum duration from creation time.
func (*ExtendableDeadline) Extend ¶
func (ed *ExtendableDeadline) Extend()
Extend resets the idle timer by idleTimeout from now, but never beyond maxTimeout from the original start time.
func (*ExtendableDeadline) Reason ¶
func (ed *ExtendableDeadline) Reason() Reason
Reason returns the reason the deadline expired (or ReasonCancelled if Stop was called).
func (*ExtendableDeadline) Stop ¶
func (ed *ExtendableDeadline) Stop()
Stop releases the deadline resources. Must be called when done (typically via defer).