Ver código fonte

fixing deadlock

reid 2 anos atrás
pai
commit
88dcf9ac6f
1 arquivos alterados com 4 adições e 1 exclusões
  1. 4 1
      broadcast/broadcast.go

+ 4 - 1
broadcast/broadcast.go

@@ -232,6 +232,7 @@ func GetContainerNetworks(containers []string) map[string]string {
 
 // update broadcastState with a map of items
 func UpdateBroadcastState(values map[string]interface{}) error {
+	config.Logger.Info("updatestate mu lock")
 	mu.Lock()
 	defer mu.Unlock()
 	v := reflect.ValueOf(&broadcastState).Elem()
@@ -251,6 +252,7 @@ func UpdateBroadcastState(values map[string]interface{}) error {
 	config.Logger.Info("Broadcasting updated state")
 	BroadcastToClients()
 	config.Logger.Info("Broadcasted")
+	config.Logger.Info("getstate mu unlock")
 	return nil
 }
 
@@ -314,9 +316,10 @@ func recursiveUpdate(dst, src reflect.Value) error {
 
 // return broadcast state
 func GetState() structs.AuthBroadcast {
-	config.Logger.Info("Getting state")
+	config.Logger.Info("getstate mu lock")
 	mu.Lock()
 	defer mu.Unlock()
+	config.Logger.Info("getstate mu unlock")
 	return broadcastState
 }