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)