Mercurial > gemma
changeset 1519:08e1b38a4a8b
Be aware of canceling the last scheduled function.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 06 Dec 2018 14:34:03 +0100 |
parents | cff2cf1f3038 |
children | 6ad1f431bc85 |
files | pkg/misc/scheduler.go |
diffstat | 1 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/misc/scheduler.go Thu Dec 06 14:20:32 2018 +0100 +++ b/pkg/misc/scheduler.go Thu Dec 06 14:34:03 2018 +0100 @@ -130,9 +130,12 @@ case k := <-s.cancel: for i := len(s.queue) - 1; i >= 0; { if s.queue[i].kind == k { - copy(s.queue[i:], s.queue[i+1:]) - s.queue[len(s.queue)-1] = nil - s.queue = s.queue[:len(s.queue)-1] + n := len(s.queue) - 1 + if i < n { + copy(s.queue[i:], s.queue[i+1:]) + } + s.queue[n] = nil + s.queue = s.queue[:n] } } heap.Init(&s.queue)