From e4261c53b189e3678a815d25842ef5477d79324e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Sun, 3 Jul 2022 23:06:56 +0200 Subject: [PATCH] iceCandidatesMu. --- internal/webrtc/metrics.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/internal/webrtc/metrics.go b/internal/webrtc/metrics.go index bd377294..42efa7ae 100644 --- a/internal/webrtc/metrics.go +++ b/internal/webrtc/metrics.go @@ -15,6 +15,7 @@ type metrics struct { connectionCount prometheus.Counter iceCandidates map[string]struct{} + iceCandidatesMu *sync.Mutex iceCandidatesCount prometheus.Counter iceBytesSent prometheus.Gauge @@ -73,7 +74,8 @@ func (m *metricsCtx) getBySession(session types.Session) metrics { }, }), - iceCandidates: map[string]struct{}{}, + iceCandidates: map[string]struct{}{}, + iceCandidatesMu: &sync.Mutex{}, iceCandidatesCount: promauto.NewCounter(prometheus.CounterOpts{ Name: "ice_candidates_count", Namespace: "neko", @@ -135,6 +137,9 @@ func (m *metricsCtx) NewConnection(session types.Session) { func (m *metricsCtx) NewICECandidate(session types.Session, id string) { met := m.getBySession(session) + met.iceCandidatesMu.Lock() + defer met.iceCandidatesMu.Unlock() + if _, found := met.iceCandidates[id]; found { return }