blob: fa148d496b616265e41f2ba7bca29774e163ed05 [file] [log] [blame]
package ipc
import (
"time"
)
// timer is a replacement for time.Timer, the only difference is that
// its channel is type chan struct{} and it will be closed when the timer expires,
// which we need in some places.
type timer struct {
base *time.Timer
C <-chan struct{}
}
func newTimer(d time.Duration) *timer {
c := make(chan struct{}, 0)
base := time.AfterFunc(d, func() {
close(c)
})
return &timer{
base: base,
C: c,
}
}
func (t *timer) Stop() bool {
return t.base.Stop()
}
func (t *timer) Reset(d time.Duration) bool {
return t.base.Reset(d)
}