From 10049697322d1b0cc8de490ef4b2ef5155ab67b0 Mon Sep 17 00:00:00 2001
From: Christoph Petrausch <christoph.petrausch@inovex.de>
Date: Wed, 23 May 2018 15:34:01 +0200
Subject: [PATCH] added missing locks

---
 routingtable/client_manager.go | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/routingtable/client_manager.go b/routingtable/client_manager.go
index ee0275c3..20d848b2 100644
--- a/routingtable/client_manager.go
+++ b/routingtable/client_manager.go
@@ -63,6 +63,8 @@ func (c *ClientManager) RegisterWithOptions(client RouteTableClient, opt ClientO
 
 // Unregister unregisters a client
 func (c *ClientManager) Unregister(client RouteTableClient) {
+	c.mu.Lock()
+	defer c.mu.Unlock()
 	if _, ok := c.clients[client]; !ok {
 		return
 	}
@@ -71,6 +73,8 @@ func (c *ClientManager) Unregister(client RouteTableClient) {
 
 // Clients returns a list of registered clients
 func (c *ClientManager) Clients() []RouteTableClient {
+	c.mu.RLock()
+	defer c.mu.RUnlock()
 	ret := make([]RouteTableClient, 0)
 	for rtc := range c.clients {
 		ret = append(ret, rtc)
-- 
GitLab