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