Skip to content

Commit

Permalink
Fix a rare panic in dispatch_timers
Browse files Browse the repository at this point in the history
  • Loading branch information
kovidgoyal committed Jul 2, 2023
1 parent bc72c3e commit b28c405
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions tools/tui/loop/timers.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,24 +34,24 @@ func (self *Loop) remove_timer(id IdType) bool {
}

func (self *Loop) dispatch_timers(now time.Time) error {
updated := false
self.timers_temp = self.timers_temp[:0]
self.timers_temp = append(self.timers_temp, self.timers...)
for i, t := range self.timers_temp {
for _, t := range self.timers {
if now.After(t.deadline) {
err := t.callback(t.id)
if err != nil {
return err
}
if t.repeats {
t.update_deadline(now)
updated = true
} else {
self.timers = append(self.timers[:i], self.timers[i+1:]...)
self.timers_temp = append(self.timers_temp, t)
}
}
}
if updated {
self.timers = self.timers[:0]
if len(self.timers_temp) > 0 {
for _, t := range self.timers_temp {
self.timers = append(self.timers, t)
}
self.sort_timers()
}
return nil
Expand Down

0 comments on commit b28c405

Please sign in to comment.