parallel optimization groundwork

This commit is contained in:
LPF
2026-05-10 17:27:06 +08:00
parent ce2263ac8c
commit 7b07bb270b
37 changed files with 6896 additions and 3481 deletions

View File

@@ -153,17 +153,24 @@ func (s *Server) broadcastEvent(payload map[string]interface{}) {
subs = append(subs, conn)
}
s.eventSubsMu.Unlock()
var failed []*websocket.Conn
for _, conn := range subs {
if conn == nil {
continue
}
if err := conn.WriteJSON(payload); err != nil {
s.eventSubsMu.Lock()
delete(s.eventSubs, conn)
s.eventSubsMu.Unlock()
failed = append(failed, conn)
_ = conn.Close()
}
}
if len(failed) == 0 {
return
}
s.eventSubsMu.Lock()
for _, conn := range failed {
delete(s.eventSubs, conn)
}
s.eventSubsMu.Unlock()
}
func writeJSON(w http.ResponseWriter, payload interface{}) {