Преглед изворни кода

Merge branch 'master' of https://github.com/v2ray/v2ray-core

Darien Raymond пре 8 година
родитељ
комит
2a3facab5a
1 измењених фајлова са 11 додато и 2 уклоњено
  1. 11 2
      app/proxyman/mux/mux.go

+ 11 - 2
app/proxyman/mux/mux.go

@@ -42,7 +42,7 @@ func (s *session) closeUplink() {
 	allDone = s.uplinkClosed && s.downlinkClosed
 	s.Unlock()
 	if allDone {
-		s.parent.remove(s.id)
+		go s.parent.remove(s.id)
 	}
 }
 
@@ -53,7 +53,7 @@ func (s *session) closeDownlink() {
 	allDone = s.uplinkClosed && s.downlinkClosed
 	s.Unlock()
 	if allDone {
-		s.parent.remove(s.id)
+		go s.parent.remove(s.id)
 	}
 }
 
@@ -279,6 +279,15 @@ func (m *Client) fetchOutput() {
 			break
 		}
 	}
+
+	// Close all downlinks
+	m.access.RLock()
+	for _, s := range m.sessions {
+		s.closeUplink()
+		s.closeDownlink()
+		s.output.CloseError()
+	}
+	m.access.RUnlock()
 }
 
 type Server struct {