2
0

critical for writing from mutiple threads

This commit is contained in:
Roman Vasilyev
2019-01-31 23:10:02 -08:00
parent e4b6961e7e
commit a570815616
+4 -1
View File
@@ -98,7 +98,9 @@ func (rc *RecConn) ReadMessage() (messageType int, message []byte, err error) {
func (rc *RecConn) WriteMessage(messageType int, data []byte) error {
err := ErrNotConnected
if rc.IsConnected() {
rc.mu.Lock()
err = rc.Conn.WriteMessage(messageType, data)
rc.mu.Unlock()
if err != nil {
rc.closeAndReconnect()
}
@@ -116,7 +118,9 @@ func (rc *RecConn) WriteMessage(messageType int, data []byte) error {
func (rc *RecConn) WriteJSON(v interface{}) error {
err := ErrNotConnected
if rc.IsConnected() {
rc.mu.Lock()
err = rc.Conn.WriteJSON(v)
rc.mu.Unlock()
if err != nil {
rc.closeAndReconnect()
}
@@ -210,7 +214,6 @@ func (rc *RecConn) setDefaultHandshakeTimeout() {
}
}
func (rc *RecConn) setDefaultDialer(handshakeTimeout time.Duration) {
rc.mu.Lock()
defer rc.mu.Unlock()