func (k *kvChannelIndex) getChannelClock() (base.SequenceClock, error) { var channelClock base.SequenceClock var err error // If we're polling, return a copy k.lastPolledLock.RLock() defer k.lastPolledLock.RUnlock() if k.lastPolledChannelClock != nil { channelClock = base.NewSequenceClockImpl() channelClock.SetTo(k.lastPolledChannelClock) } else { channelClock, err = k.loadChannelClock() if err != nil { return nil, err } } return channelClock, nil }