From e0fa132ec95abe91fe352003cb8e640c2e302e49 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Thu, 5 Mar 2015 12:42:09 -0800 Subject: [PATCH] add parallel Signed-off-by: Victor Vieux --- cluster/swarm/cluster.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/cluster/swarm/cluster.go b/cluster/swarm/cluster.go index 9fb30a4147..57623daf8c 100644 --- a/cluster/swarm/cluster.go +++ b/cluster/swarm/cluster.go @@ -187,10 +187,18 @@ func (c *Cluster) Image(IdOrName string) *cluster.Image { } func (c *Cluster) Pull(name string, begin, end func(string)) { - for _, node := range c.nodes { - begin(node.Name()) - node.Pull(name) - end(node.Name()) + size := len(c.nodes) + done := make(chan bool, size) + for _, n := range c.nodes { + go func(nn *node) { + begin(nn.Name()) + nn.Pull(name) + end(nn.Name()) + done <- true + }(n) + } + for i := 0; i < size; i++ { + <-done } }