From 5e576e11bba14997fd1ecd5245a1f510079195fc Mon Sep 17 00:00:00 2001 From: Shelikhoo Date: Sun, 14 Aug 2016 20:40:59 +0800 Subject: [PATCH] fix crash --- transport/internet/ws/wsconn.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/transport/internet/ws/wsconn.go b/transport/internet/ws/wsconn.go index fa64ec88..e23fc947 100644 --- a/transport/internet/ws/wsconn.go +++ b/transport/internet/ws/wsconn.go @@ -126,7 +126,9 @@ func (ws *wsconn) Write(b []byte) (n int, err error) { } func (ws *wsconn) Close() error { ws.connClosing = true + ws.wlock.Lock() ws.wsc.WriteControl(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, ""), time.Now().Add((time.Second * 5))) + ws.wlock.Unlock() err := ws.wsc.Close() return err } @@ -186,7 +188,9 @@ func (ws *wsconn) pingPong() { go func() { for !ws.connClosing { + ws.wlock.Lock() ws.wsc.WriteMessage(websocket.PingMessage, nil) + ws.wlock.Unlock() tick := time.NewTicker(time.Second * 3) select {