Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Manager ¶
type Manager interface {
// Start the manager. Must be called before any other method.
// Should be called in a goroutine.
Dispatch()
// TimeoutDuration returns the current timeout duration.
TimeoutDuration() time.Duration
// IsBenched returns true if messages to [nodeID] regarding [chainID]
// should not be sent over the network and should immediately fail.
IsBenched(nodeID ids.NodeID, chainID ids.ID) bool
// Register the existence of the given chain.
// Must be called before any method calls that use the
// ID of the chain.
RegisterChain(ctx *snow.ConsensusContext) error
// RegisterRequest notes that we expect a response of type [op] from
// [nodeID] for chain [chainID]. If we don't receive a response in
// time, [timeoutHandler] is executed.
RegisterRequest(
nodeID ids.NodeID,
chainID ids.ID,
measureLatency bool,
requestID ids.RequestID,
timeoutHandler func(),
)
// Registers that we would have sent a request to a validator but they
// are unreachable because they are benched or because of network conditions
// (e.g. we're not connected), so we didn't send the query. For the sake
// of calculating the average latency and network timeout, we act as
// though we sent the validator a request and it timed out.
RegisterRequestToUnreachableValidator()
// Registers that [nodeID] sent us a response of type [op]
// for the given chain. The response corresponds to the given
// requestID we sent them. [latency] is the time between us
// sending them the request and receiving their response.
RegisterResponse(
nodeID ids.NodeID,
chainID ids.ID,
requestID ids.RequestID,
op message.Op,
latency time.Duration,
)
// Mark that we no longer expect a response to this request we sent.
// Does not modify the timeout.
RemoveRequest(requestID ids.RequestID)
// Stops the manager.
Stop()
}
Manages timeouts for requests sent to peers.
func NewManager ¶ added in v1.7.10
func NewManager( timeoutConfig *timer.AdaptiveTimeoutConfig, benchlistMgr benchlist.Manager, requestReg prometheus.Registerer, responseReg prometheus.Registerer, ) (Manager, error)
Directories
¶
| Path | Synopsis |
|---|---|
|
Package timeoutmock is a generated GoMock package.
|
Package timeoutmock is a generated GoMock package. |
Click to show internal directories.
Click to hide internal directories.