Lock engine to prevent simultaneous change on `containers` map.

Signed-off-by: Dong Chen <dongluo.chen@docker.com>
This commit is contained in:
Dong Chen 2016-02-12 15:34:15 -08:00
parent 1fab0aed5a
commit bfc556613b
1 changed files with 4 additions and 1 deletions

View File

@ -585,7 +585,10 @@ func (e *Engine) refreshContainer(ID string, full bool) (*Container, error) {
} }
_, err = e.updateContainer(containers[0], e.containers, full) _, err = e.updateContainer(containers[0], e.containers, full)
return e.containers[containers[0].Id], err e.RLock()
container := e.containers[containers[0].Id]
e.RUnlock()
return container, err
} }
func (e *Engine) updateContainer(c dockerclient.Container, containers map[string]*Container, full bool) (map[string]*Container, error) { func (e *Engine) updateContainer(c dockerclient.Container, containers map[string]*Container, full bool) (map[string]*Container, error) {