idle

package
v1.78.0 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2025 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package idle contains a component for managing idleness (entering and exiting) based on RPC activity.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientConn added in v1.78.0

type ClientConn interface {
	ExitIdleMode()
	EnterIdleMode()
}

ClientConn is the functionality provided by grpc.ClientConn to enter and exit from idle mode.

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager implements idleness detection and calls the ClientConn to enter/exit idle mode when appropriate. Must be created by NewManager.

func NewManager

func NewManager(cc ClientConn, timeout time.Duration) *Manager

NewManager creates a new idleness manager implementation for the given idle timeout. It begins in idle mode.

func (*Manager) Close

func (m *Manager) Close()

Close stops the timer associated with the Manager, if it exists.

func (*Manager) EnterIdleModeForTesting added in v1.60.0

func (m *Manager) EnterIdleModeForTesting()

EnterIdleModeForTesting instructs the channel to enter idle mode.

func (*Manager) ExitIdleMode added in v1.60.0

func (m *Manager) ExitIdleMode()

ExitIdleMode instructs m to call the ClientConn's ExitIdleMode and update its internal state.

func (*Manager) OnCallBegin

func (m *Manager) OnCallBegin()

OnCallBegin is invoked at the start of every RPC.

func (*Manager) OnCallEnd

func (m *Manager) OnCallEnd()

OnCallEnd is invoked at the end of every RPC.

func (*Manager) UnsafeSetNotIdle added in v1.78.0

func (m *Manager) UnsafeSetNotIdle()

UnsafeSetNotIdle instructs the Manager to update its internal state to reflect the reality that the channel is no longer in IDLE mode.

N.B. This method is intended only for internal use by the gRPC client when it exits IDLE mode **manually** from `Dial`. The callsite must ensure:

  • The channel was **actually in IDLE mode** immediately prior to the call.
  • There is **no concurrent activity** that could cause the channel to exit IDLE mode *naturally* at the same time.

Jump to

Keyboard shortcuts

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