Browse Source

socket: Make closing work a little better

tags/v0.7.2
Daniel Oaks 7 years ago
parent
commit
121269661b
1 changed files with 6 additions and 4 deletions
  1. 6
    4
      irc/socket.go

+ 6
- 4
irc/socket.go View File

@@ -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 {

Loading…
Cancel
Save