Handle the case where poolAdd() gives an error for an unknown pool type

This commit is contained in:
Danny Yates 2013-11-27 16:53:36 +00:00
parent ae474e05f5
commit 788feab3a7
1 changed files with 9 additions and 5 deletions

View File

@ -988,11 +988,15 @@ func (srv *Server) ImagePull(localName string, tag string, out io.Writer, sf *ut
out = utils.NewWriteFlusher(out)
if c, err := srv.poolAdd("pull", localName+":"+tag); err != nil {
// Another pull of the same repository is already taking place; just wait for it to finish
out.Write(sf.FormatStatus("", "Repository %s already being pulled by another client. Waiting.", localName))
<-c
return nil
c, err := srv.poolAdd("pull", localName+":"+tag)
if err != nil {
if c != nil {
// Another pull of the same repository is already taking place; just wait for it to finish
out.Write(sf.FormatStatus("", "Repository %s already being pulled by another client. Waiting.", localName))
<-c
return nil
}
return err
}
defer srv.poolRemove("pull", localName+":"+tag)