@@ -127,7 +127,6 @@ func (container *Container) FromDisk() error {
if err := json.Unmarshal(data, container); err != nil {
return err
}
- container.State.resetLock()
return nil
@@ -117,6 +117,7 @@ func (runtime *Runtime) Load(id string) (*Container, error) {
if err := container.FromDisk(); err != nil {
return nil, err
+ container.State.initLock()
if container.Id != id {
return container, fmt.Errorf("Container %s is stored at %s", container.Id, id)
@@ -39,9 +39,11 @@ func (s *State) setStopped(exitCode int) {
s.broadcast()
-func (s *State) resetLock() {
- s.stateChangeLock = &sync.Mutex{}
- s.stateChangeCond = sync.NewCond(s.stateChangeLock)
+func (s *State) initLock() {
+ if s.stateChangeLock == nil {
+ s.stateChangeLock = &sync.Mutex{}
+ s.stateChangeCond = sync.NewCond(s.stateChangeLock)
+ }
func (s *State) broadcast() {