Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Gate ¶
type Gate interface {
// FireCh return the channel which will be fired when time is up
FireCh() <-chan struct{}
// FireAfter check will the timer get fired after a certain time
FireAfter(now time.Time) bool
// Update the timer gate, return true if update is a success.
// Success means timer is idle or timer is set with a sooner time to fire
Update(nextTime time.Time) bool
// Close shutdown the timer
Close()
}
Gate interface
type LocalGate ¶
type LocalGate interface {
Gate
}
func NewLocalGate ¶
func NewLocalGate(timeSource clock.TimeSource) LocalGate
NewLocalGate create a new timer gate instance
type LocalGateImpl ¶
type LocalGateImpl struct {
// contains filtered or unexported fields
}
func (*LocalGateImpl) FireAfter ¶
func (lg *LocalGateImpl) FireAfter(now time.Time) bool
FireAfter check will the timer get fired after a certain time
func (*LocalGateImpl) FireCh ¶ added in v1.21.0
func (lg *LocalGateImpl) FireCh() <-chan struct{}
FireCh return the channel which will be fired when time is up
type RemoteGate ¶
type RemoteGateImpl ¶
type RemoteGateImpl struct {
// lock for timer and next wakeup time
sync.Mutex
// contains filtered or unexported fields
}
func (*RemoteGateImpl) FireAfter ¶
func (rg *RemoteGateImpl) FireAfter(now time.Time) bool
FireAfter check will the timer get fired after a certain time
func (*RemoteGateImpl) FireCh ¶ added in v1.21.0
func (rg *RemoteGateImpl) FireCh() <-chan struct{}
FireCh return the channel which will be fired when time is up
func (*RemoteGateImpl) SetCurrentTime ¶
func (rg *RemoteGateImpl) SetCurrentTime(currentTime time.Time) bool
SetCurrentTime set the current time, and additionally fire the fire chan if new "current" time is after the next wake-up time, return true if "current" is actually updated
Click to show internal directories.
Click to hide internal directories.