e963179c79
This moves the call to sort in daemon/history to a function to be called explicitly when we're done adding elements to the list. This speeds up `docker ps`. Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
33 lines
645 B
Go
33 lines
645 B
Go
package daemon
|
|
|
|
import (
|
|
"sort"
|
|
)
|
|
|
|
// History is a convenience type for storing a list of containers,
|
|
// ordered by creation date.
|
|
type History []*Container
|
|
|
|
func (history *History) Len() int {
|
|
return len(*history)
|
|
}
|
|
|
|
func (history *History) Less(i, j int) bool {
|
|
containers := *history
|
|
return containers[j].Created.Before(containers[i].Created)
|
|
}
|
|
|
|
func (history *History) Swap(i, j int) {
|
|
containers := *history
|
|
tmp := containers[i]
|
|
containers[i] = containers[j]
|
|
containers[j] = tmp
|
|
}
|
|
|
|
func (history *History) Add(container *Container) {
|
|
*history = append(*history, container)
|
|
}
|
|
|
|
func (history *History) Sort() {
|
|
sort.Sort(history)
|
|
}
|