瀏覽代碼

socket: Make closing work a little better

tags/v0.7.2
Daniel Oaks 7 年之前
父節點
當前提交
121269661b
共有 1 個文件被更改,包括 6 次插入4 次删除
  1. 6
    4
      irc/socket.go

+ 6
- 4
irc/socket.go 查看文件

@@ -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…
取消
儲存