mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
31 lines
590 B
Go
31 lines
590 B
Go
package scheduler
|
|
|
|
type nodeMaxHeap struct {
|
|
nodes []NodeInfo
|
|
lessFunc func(*NodeInfo, *NodeInfo) bool
|
|
length int
|
|
}
|
|
|
|
func (h nodeMaxHeap) Len() int {
|
|
return h.length
|
|
}
|
|
|
|
func (h nodeMaxHeap) Swap(i, j int) {
|
|
h.nodes[i], h.nodes[j] = h.nodes[j], h.nodes[i]
|
|
}
|
|
|
|
func (h nodeMaxHeap) Less(i, j int) bool {
|
|
// reversed to make a max-heap
|
|
return h.lessFunc(&h.nodes[j], &h.nodes[i])
|
|
}
|
|
|
|
func (h *nodeMaxHeap) Push(x interface{}) {
|
|
h.nodes = append(h.nodes, x.(NodeInfo))
|
|
h.length++
|
|
}
|
|
|
|
func (h *nodeMaxHeap) Pop() interface{} {
|
|
h.length--
|
|
// return value is never used
|
|
return nil
|
|
}
|