queue.go
func (queue *queue) ForEach(process func(interface{})) {
	for i := queue.start; i < queue.end; i++ {
		process(queue.elements[i%int64(queue.cap)])
	}
}
func (queue *queue) ForEach(process func(interface{})) {
	for i := queue.start; i < queue.end; i++ {
		process(queue.elements[i%int64(queue.cap)])
	}
}
// ForEach calls process for each element in the queue.