fix closing already closed channel error

This commit is contained in:
Loïs BIBEHE 2023-07-20 22:11:48 +02:00
parent c557c60860
commit 94f595a953
No known key found for this signature in database
GPG Key ID: 85BCF4EEE9A29479
5 changed files with 38 additions and 10 deletions

View File

@ -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

View File

@ -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"],

View File

@ -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) {

View File

@ -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"],

View File

@ -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) {