mirror of
https://github.com/nonoo/kappanhang.git
synced 2026-02-20 06:24:13 +01:00
Always fully deplete available entries from seqbuf
This commit is contained in:
parent
2032fc7ebb
commit
7a2a5bf4d2
32
seqbuf.go
32
seqbuf.go
|
|
@ -221,21 +221,27 @@ func (s *seqBuf) watcher() {
|
|||
var entryAvailableTimerRunning bool
|
||||
|
||||
for {
|
||||
t, err := s.getNextDataAvailableRemainingTime()
|
||||
if err == nil {
|
||||
if t == 0 { // Do we have an entry available right now?
|
||||
e, err := s.get()
|
||||
if err == nil {
|
||||
if s.entryChan != nil {
|
||||
s.entryChan <- e
|
||||
retry := true
|
||||
for retry {
|
||||
t, err := s.getNextDataAvailableRemainingTime()
|
||||
if err == nil {
|
||||
if t == 0 { // Do we have an entry available right now?
|
||||
e, err := s.get()
|
||||
if err == nil {
|
||||
if s.entryChan != nil {
|
||||
s.entryChan <- e
|
||||
}
|
||||
} else {
|
||||
log.Error(err)
|
||||
}
|
||||
} else {
|
||||
log.Error(err)
|
||||
} else if !entryAvailableTimerRunning {
|
||||
// An entry will be available later, waiting for it.
|
||||
entryAvailableTimer.Reset(t)
|
||||
entryAvailableTimerRunning = true
|
||||
}
|
||||
} else if !entryAvailableTimerRunning {
|
||||
// An entry will be available later, waiting for it.
|
||||
entryAvailableTimer.Reset(t)
|
||||
entryAvailableTimerRunning = true
|
||||
retry = true
|
||||
} else {
|
||||
retry = false
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue