瀏覽代碼

DockerSwarmSuite lock portIndex to work around race

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn 6 年之前
父節點
當前提交
c096225e8e
共有 1 個文件被更改,包括 3 次插入4 次删除
  1. 3 4
      integration-cli/check_test.go

+ 3 - 4
integration-cli/check_test.go

@@ -304,8 +304,8 @@ func init() {
 type DockerSwarmSuite struct {
 type DockerSwarmSuite struct {
 	server      *httptest.Server
 	server      *httptest.Server
 	ds          *DockerSuite
 	ds          *DockerSuite
+	daemonsLock sync.Mutex // protect access to daemons and portIndex
 	daemons     []*daemon.Daemon
 	daemons     []*daemon.Daemon
-	daemonsLock sync.Mutex // protect access to daemons
 	portIndex   int
 	portIndex   int
 }
 }
 
 
@@ -336,8 +336,8 @@ func (s *DockerSwarmSuite) AddDaemon(c *check.C, joinSwarm, manager bool) *daemo
 		d.StartNode(c)
 		d.StartNode(c)
 	}
 	}
 
 
-	s.portIndex++
 	s.daemonsLock.Lock()
 	s.daemonsLock.Lock()
+	s.portIndex++
 	s.daemons = append(s.daemons, d)
 	s.daemons = append(s.daemons, d)
 	s.daemonsLock.Unlock()
 	s.daemonsLock.Unlock()
 
 
@@ -354,9 +354,8 @@ func (s *DockerSwarmSuite) TearDownTest(c *check.C) {
 		}
 		}
 	}
 	}
 	s.daemons = nil
 	s.daemons = nil
-	s.daemonsLock.Unlock()
-
 	s.portIndex = 0
 	s.portIndex = 0
+	s.daemonsLock.Unlock()
 	s.ds.TearDownTest(c)
 	s.ds.TearDownTest(c)
 }
 }