fix closing already closed channel error
This commit is contained in:
parent
c557c60860
commit
94f595a953
@ -524,11 +524,15 @@ func (cm *ChatsManager) createPeerConnection(target string, from string, chatId
|
||||
})
|
||||
dc.OnClose(func() {
|
||||
fmt.Println("closing gracefully event dc...")
|
||||
if _, closed := <-reqChan; !closed {
|
||||
close(reqChan)
|
||||
}
|
||||
})
|
||||
dc.OnError(func(err error) {
|
||||
// logger.Println("--------------- error in dc:", err)
|
||||
if _, closed := <-reqChan; !closed {
|
||||
close(reqChan)
|
||||
}
|
||||
})
|
||||
dc.OnMessage(func(msg webrtc.DataChannelMessage) {
|
||||
var req ChatRequest
|
||||
|
||||
@ -104,7 +104,11 @@ func (zm *SquadGrpcMiddleware) Process(ctx context.Context, req *SignalingMessag
|
||||
reqChan := make(chan *SquadRequest)
|
||||
d, e := zm.Manager.Squads[payload["squadId"]].SquadRequestScheduler.Schedule(reqChan)
|
||||
go func() {
|
||||
defer close(reqChan)
|
||||
defer func() {
|
||||
if _, closed := <-reqChan; !closed {
|
||||
close(reqChan)
|
||||
}
|
||||
}()
|
||||
reqChan <- &SquadRequest{
|
||||
ReqType: string(REMOVED_SQUAD_AUTHORIZED_MEMBER),
|
||||
From: payload["userId"],
|
||||
@ -131,7 +135,11 @@ func (zm *SquadGrpcMiddleware) Process(ctx context.Context, req *SignalingMessag
|
||||
reqChan := make(chan *SquadRequest)
|
||||
d, e := zm.Manager.Squads[payload["squadId"]].SquadRequestScheduler.Schedule(reqChan)
|
||||
go func() {
|
||||
defer close(reqChan)
|
||||
defer func() {
|
||||
if _, closed := <-reqChan; !closed {
|
||||
close(reqChan)
|
||||
}
|
||||
}()
|
||||
reqChan <- &SquadRequest{
|
||||
ReqType: string(NEW_AUTHORIZED_SQUAD_MEMBER),
|
||||
From: payload["userId"],
|
||||
|
||||
@ -442,11 +442,15 @@ func (zm *SquadManager) createPeerConnection(target string, from string, squadId
|
||||
}
|
||||
})
|
||||
channel.OnClose(func() {
|
||||
if _, closed := <-reqChan; !closed {
|
||||
close(reqChan)
|
||||
}
|
||||
//_ = zm.HandleLeavingMember(target, squadId, true)
|
||||
})
|
||||
channel.OnError(func(err error) {
|
||||
if _, closed := <-reqChan; !closed {
|
||||
close(reqChan)
|
||||
}
|
||||
//_ = zm.HandleLeavingMember(target, squadId, true)
|
||||
})
|
||||
channel.OnMessage(func(msg webrtc.DataChannelMessage) {
|
||||
|
||||
@ -104,7 +104,11 @@ func (zm *ZoneGrpcMiddleware) Process(ctx context.Context, req *SignalingMessage
|
||||
}
|
||||
done, e := zm.Manager.Zones[payload["zoneId"]].ZoneRequestScheduler.Schedule(reqChan)
|
||||
go func() {
|
||||
defer close(reqChan)
|
||||
defer func() {
|
||||
if _, closed := <-reqChan; !closed {
|
||||
close(reqChan)
|
||||
}
|
||||
}()
|
||||
reqChan <- &ZoneRequest{
|
||||
ReqType: string(REMOVED_ZONE_AUTHORIZED_MEMBER),
|
||||
From: payload["userId"],
|
||||
@ -138,7 +142,11 @@ func (zm *ZoneGrpcMiddleware) Process(ctx context.Context, req *SignalingMessage
|
||||
reqChan := make(chan *ZoneRequest)
|
||||
done, e := zm.Manager.Zones[payload["zoneId"]].ZoneRequestScheduler.Schedule(reqChan)
|
||||
go func() {
|
||||
defer close(reqChan)
|
||||
defer func() {
|
||||
if _, closed := <-reqChan; !closed {
|
||||
close(reqChan)
|
||||
}
|
||||
}()
|
||||
// reqChan <- &ZoneRequest{
|
||||
// ReqType: string(ADD_USER),
|
||||
// From: payload["userId"],
|
||||
|
||||
@ -458,11 +458,15 @@ func (zm *ZoneManager) createPeerConnection(target string, from string, zoneId s
|
||||
}
|
||||
})
|
||||
channel.OnClose(func() {
|
||||
if _, closed := <-reqChan; !closed {
|
||||
close(reqChan)
|
||||
}
|
||||
//_ = zm.HandleLeavingMember(target, zoneId, true)
|
||||
})
|
||||
channel.OnError(func(err error) {
|
||||
if _, closed := <-reqChan; !closed {
|
||||
close(reqChan)
|
||||
}
|
||||
//_ = zm.HandleLeavingMember(target, zoneId, true)
|
||||
})
|
||||
channel.OnMessage(func(msg webrtc.DataChannelMessage) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user