mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
![Yong Tang](/assets/img/avatar_default.png)
This fix updates SwarmKit to ed384f3b3957f65e3111bd020f9815f3d4296fa2. Notable changes since last update (3ca4775ba4a5519e2225c3337c7db8901ec39d26): 1. Fix duplicated ports allocation with restarted swarm. (Docker issue #29247) 2. Topology-aware scheduling (Docker PR #30725) Docker issue #29247 was labeled 1.13.1, though it is advised that related SwarmKit changes only to be merged to master (based on the feedback https://github.com/docker/swarmkit/pull/1802#issuecomment-274143500) This fix fixes #29247 (master only). This fix is related to #30725. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
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
|
|
}
|