From 089d1d366d61e1037773809426a0084922dc4606 Mon Sep 17 00:00:00 2001 From: David Colburn Date: Thu, 17 Jun 2021 22:33:26 -0700 Subject: [PATCH] move createOffer to goroutine --- pkg/rtc/transport.go | 16 +++++++++------- pkg/rtc/transport_test.go | 5 +++-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/pkg/rtc/transport.go b/pkg/rtc/transport.go index ca5f4bccb..49c34a3ba 100644 --- a/pkg/rtc/transport.go +++ b/pkg/rtc/transport.go @@ -93,14 +93,16 @@ func NewPCTransport(params TransportParams) (*PCTransport, error) { } t.pc.OnICEGatheringStateChange(func(state webrtc.ICEGathererState) { if state == webrtc.ICEGathererStateComplete { - t.lock.Lock() - defer t.lock.Unlock() - if t.restartAfterGathering { - logger.Debugw("restarting ICE after ICE gathering") - if err := t.createAndSendOffer(&webrtc.OfferOptions{ICERestart: true}); err != nil { - logger.Warnw("could not restart ICE", err) + go func() { + t.lock.Lock() + defer t.lock.Unlock() + if t.restartAfterGathering { + logger.Debugw("restarting ICE after ICE gathering") + if err := t.createAndSendOffer(&webrtc.OfferOptions{ICERestart: true}); err != nil { + logger.Warnw("could not restart ICE", err) + } } - } + }() } }) diff --git a/pkg/rtc/transport_test.go b/pkg/rtc/transport_test.go index 34e839fb9..7d836d02b 100644 --- a/pkg/rtc/transport_test.go +++ b/pkg/rtc/transport_test.go @@ -5,10 +5,11 @@ import ( "testing" "time" - "github.com/livekit/livekit-server/pkg/testutils" - livekit "github.com/livekit/livekit-server/proto" "github.com/pion/webrtc/v3" "github.com/stretchr/testify/require" + + "github.com/livekit/livekit-server/pkg/testutils" + livekit "github.com/livekit/livekit-server/proto" ) func TestMissingAnswerDuringICERestart(t *testing.T) {