deadline

package
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2026 License: MIT Imports: 3 Imported by: 0

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):

  1. IdleTimeout explicitly set -> idle = IdleTimeout, ceiling = RequestTimeout (or 60m)
  2. AutoExtendTimeout = true -> idle = RequestTimeout, ceiling = MaxRequestTimeout (legacy compat)
  3. 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).

type Reason

type Reason string

Reason describes why the deadline expired.

const (
	ReasonIdle       Reason = "idle"        // no activity within idle timeout
	ReasonMaxTimeout Reason = "max_timeout" // hard ceiling reached
	ReasonCancelled  Reason = "cancelled"   // explicitly stopped or parent cancelled
)

type TimeoutConfig

type TimeoutConfig struct {
	IdleTimeout       time.Duration
	RequestTimeout    time.Duration
	AutoExtendTimeout bool
	MaxRequestTimeout time.Duration
}

TimeoutConfig holds the config values needed for timeout resolution.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL