Pārlūkot izejas kodu

socket: Make closing work a little better

tags/v0.7.2
Daniel Oaks 7 gadus atpakaļ
vecāks
revīzija
121269661b
1 mainītis faili ar 6 papildinājumiem un 4 dzēšanām
  1. 6
    4
      irc/socket.go

+ 6
- 4
irc/socket.go Parādīt failu

51
 func (socket *Socket) Close() {
51
 func (socket *Socket) Close() {
52
 	socket.Closed = true
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
 	go socket.fillLineToSendExists()
55
 	go socket.fillLineToSendExists()
59
 }
56
 }
60
 
57
 
138
 		case <-socket.lineToSendExists:
135
 		case <-socket.lineToSendExists:
139
 			socket.linesToSendMutex.Lock()
136
 			socket.linesToSendMutex.Lock()
140
 
137
 
138
+			// check if we're closed
139
+			if socket.Closed {
140
+				break
141
+			}
142
+
141
 			// check sendq
143
 			// check sendq
142
 			var sendQBytes uint64
144
 			var sendQBytes uint64
143
 			for _, line := range socket.linesToSend {
145
 			for _, line := range socket.linesToSend {

Notiek ielāde…
Atcelt
Saglabāt