浏览代码

fix unsafe acces on arm

Signed-off-by: Victor Vieux <vieux@docker.com>
Victor Vieux 8 年之前
父节点
当前提交
236dc57a9e
共有 1 个文件被更改,包括 9 次插入6 次删除
  1. 9 6
      libnetwork/networkdb/networkdb.go

+ 9 - 6
libnetwork/networkdb/networkdb.go

@@ -24,6 +24,15 @@ const (
 // NetworkDB instance drives the networkdb cluster and acts the broker
 // NetworkDB instance drives the networkdb cluster and acts the broker
 // for cluster-scoped and network-scoped gossip and watches.
 // for cluster-scoped and network-scoped gossip and watches.
 type NetworkDB struct {
 type NetworkDB struct {
+	// The clocks MUST be the first things
+	// in this struct due to Golang issue #599.
+
+	// Global lamport clock for node network attach events.
+	networkClock serf.LamportClock
+
+	// Global lamport clock for table events.
+	tableClock serf.LamportClock
+
 	sync.RWMutex
 	sync.RWMutex
 
 
 	// NetworkDB configuration.
 	// NetworkDB configuration.
@@ -59,12 +68,6 @@ type NetworkDB struct {
 	// waiting for an ack.
 	// waiting for an ack.
 	bulkSyncAckTbl map[string]chan struct{}
 	bulkSyncAckTbl map[string]chan struct{}
 
 
-	// Global lamport clock for node network attach events.
-	networkClock serf.LamportClock
-
-	// Global lamport clock for table events.
-	tableClock serf.LamportClock
-
 	// Broadcast queue for network event gossip.
 	// Broadcast queue for network event gossip.
 	networkBroadcasts *memberlist.TransmitLimitedQueue
 	networkBroadcasts *memberlist.TransmitLimitedQueue