1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package docker
- import (
- "fmt"
- "github.com/dotcloud/docker/utils"
- "sync"
- "time"
- )
- type State struct {
- sync.Mutex
- Running bool
- Pid int
- ExitCode int
- StartedAt time.Time
- FinishedAt time.Time
- Ghost bool
- }
- // String returns a human-readable description of the state
- func (s *State) String() string {
- if s.Running {
- if s.Ghost {
- return fmt.Sprintf("Ghost")
- }
- return fmt.Sprintf("Up %s", utils.HumanDuration(time.Now().Sub(s.StartedAt)))
- }
- return fmt.Sprintf("Exit %d", s.ExitCode)
- }
- func (s *State) setRunning(pid int) {
- s.Running = true
- s.Ghost = false
- s.ExitCode = 0
- s.Pid = pid
- s.StartedAt = time.Now()
- }
- func (s *State) setStopped(exitCode int) {
- s.Running = false
- s.Pid = 0
- s.FinishedAt = time.Now()
- s.ExitCode = exitCode
- }
|