From a4ea6380ed70468b1bbaca0328a65686960fcd52 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期一, 20 四月 2020 16:23:30 +0800
Subject: [PATCH] add svLock

---
 server.go |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/server.go b/server.go
index 035f825..f23728c 100644
--- a/server.go
+++ b/server.go
@@ -3,6 +3,7 @@
 import (
 	"encoding/json"
 	"log"
+	"sync"
 	"time"
 
 	"golang.org/x/net/context"
@@ -52,6 +53,7 @@
 	publisher *Publisher
 
 	svInfo map[string][]byte
+	svLock sync.RWMutex
 }
 
 type Publisher struct {
@@ -162,7 +164,9 @@
 		} else {
 			if  json.Unmarshal(msg, &si) == nil {
 				responses.Add(si.ServiceId)
+				d.services.svLock.Lock()
 				d.services.svInfo[si.ServiceId] = si.Info
+				d.services.svLock.Unlock()
 			}
 		}
 	}
@@ -244,6 +248,8 @@
 }
 
 func (d *DiscoveryServer) SvInfo() map[string][]byte {
+	d.services.svLock.Lock()
+	defer d.services.svLock.Unlock()
 	m := make(map[string][]byte)
 	for k,v := range d.services.svInfo {
 		m[k] = v

--
Gitblit v1.8.0