package eventclock

import "k8s.io/apiserver/pkg/util/flowcontrol/fairqueuing/eventclock"

Index

Types

type EventFunc

type EventFunc func(time.Time)

EventFunc does some work that needs to be done at or after the given time.

type Interface

type Interface interface {
	baseclock.PassiveClock

	// Sleep returns after the given duration (or more).
	Sleep(d time.Duration)

	// EventAfterDuration invokes the given EventFunc after the given duration (or more),
	// passing the time when the invocation was launched.
	EventAfterDuration(f EventFunc, d time.Duration)

	// EventAfterTime invokes the given EventFunc at the given time or later,
	// passing the time when the invocation was launched.
	EventAfterTime(f EventFunc, t time.Time)
}

EventClock is an active clock abstraction for use in code that is testable with a fake clock that itself determines how time may be advanced. The timing paradigm is invoking EventFuncs rather than synchronizing through channels, so that the fake clock has a handle on when associated activity is done.

type Real

type Real struct {
	clock.RealClock
}

RealEventClock fires event on real world time

func (Real) EventAfterDuration

func (Real) EventAfterDuration(f EventFunc, d time.Duration)

EventAfterDuration schedules an EventFunc

func (Real) EventAfterTime

func (r Real) EventAfterTime(f EventFunc, t time.Time)

EventAfterTime schedules an EventFunc

Source Files

interface.go real.go

Version
v0.33.0 (latest)
Published
Apr 23, 2025
Platform
linux/amd64
Imports
2 packages
Last checked
2 hours ago

Tools for package owners.