fix concurrency problem (#369)

This commit is contained in:
cnderrauber
2022-01-25 16:13:52 +08:00
committed by GitHub
parent e7e3fcac43
commit b2cb93d9a4
+4
View File
@@ -48,6 +48,8 @@ type MediaTrack struct {
*MediaTrackReceiver
onMediaLossUpdate func(trackID livekit.TrackID, fractionalLoss uint32)
lock sync.RWMutex
}
type MediaTrackParams struct {
@@ -204,6 +206,7 @@ func (t *MediaTrack) AddReceiver(receiver *webrtc.RTPReceiver, track *webrtc.Tra
}
})
t.lock.Lock()
if t.Receiver() == nil {
wr := sfu.NewWebRTCReceiver(
receiver,
@@ -226,6 +229,7 @@ func (t *MediaTrack) AddReceiver(receiver *webrtc.RTPReceiver, track *webrtc.Tra
t.MediaTrackReceiver.SetupReceiver(wr)
}
t.lock.Unlock()
t.Receiver().(*sfu.WebRTCReceiver).AddUpTrack(track, buff)
t.params.Telemetry.AddUpTrack(t.PublisherID(), t.ID(), buff)