|
@@ -51,10 +51,7 @@ func NewSocket(conn net.Conn, maxSendQBytes uint64) Socket {
|
51
|
51
|
func (socket *Socket) Close() {
|
52
|
52
|
socket.Closed = true
|
53
|
53
|
|
54
|
|
- // 'send data' to force close loop to happen
|
55
|
|
- socket.linesToSendMutex.Lock()
|
56
|
|
- socket.linesToSend = append(socket.linesToSend, "")
|
57
|
|
- socket.linesToSendMutex.Unlock()
|
|
54
|
+ // force close loop to happen
|
58
|
55
|
go socket.fillLineToSendExists()
|
59
|
56
|
}
|
60
|
57
|
|
|
@@ -138,6 +135,11 @@ func (socket *Socket) RunSocketWriter() {
|
138
|
135
|
case <-socket.lineToSendExists:
|
139
|
136
|
socket.linesToSendMutex.Lock()
|
140
|
137
|
|
|
138
|
+ // check if we're closed
|
|
139
|
+ if socket.Closed {
|
|
140
|
+ break
|
|
141
|
+ }
|
|
142
|
+
|
141
|
143
|
// check sendq
|
142
|
144
|
var sendQBytes uint64
|
143
|
145
|
for _, line := range socket.linesToSend {
|