Skip to content

Commit 8dd122a

Browse files
committed
Fix race conditions
Signed-off-by: Šimon Brandner <[email protected]>
1 parent da507e2 commit 8dd122a

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/subscriber.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ func (s *Subscriber) initLoggingWithTrack(track *webrtc.TrackRemote) {
6161
func (s *Subscriber) Subscribe(publisher *Publisher) {
6262
s.initLoggingWithTrack(publisher.Track)
6363

64+
if s.publisher != nil {
65+
s.logger.Error("cannot subscribe, if we already are")
66+
}
67+
6468
track, err := webrtc.NewTrackLocalStaticRTP(
6569
publisher.Track.Codec().RTPCodecCapability,
6670
publisher.Track.ID(),
@@ -113,6 +117,11 @@ func (s *Subscriber) Unsubscribe() {
113117

114118
func (s *Subscriber) forwardRTCP() {
115119
for {
120+
// If we unsubscribed, stop forwarding RTCP packets
121+
if s.publisher == nil {
122+
return
123+
}
124+
116125
packets, _, err := s.sender.ReadRTCP()
117126
if err != nil {
118127
if errors.Is(err, io.ErrClosedPipe) || errors.Is(err, io.EOF) {

0 commit comments

Comments
 (0)