Unsubscribe from data track on close (#4443)

* Unsubscribe from data track on close

* clean up
This commit is contained in:
Raja Subramanian authored and GitHub committed 2026-04-10 15:29:25 +05:30
1 parent 5dc4e90d82
commit 2974ba879f
1 file changed
+11 -3
+11 -3
View File
@@ -152,8 +152,9 @@ func (m *SubscriptionManager) Close(isExpectedToResume bool) {
}
}
m.lock.Lock()
for _, sub := range m.dataTrackSubscriptions {
for trackID, sub := range dataTrackSubs {
m.setDataTrackDesired(trackID, false)
dataDownTrack := sub.getDataDownTrack()
if dataDownTrack == nil {
// already unsubscribed
@@ -167,7 +168,6 @@ func (m *SubscriptionManager) Close(isExpectedToResume bool) {
dataTrack.RemoveSubscriber(sub.subscriberID)
}
m.lock.Unlock()
m.notifyDataTrackSubscriberHandles()
}
@@ -181,6 +181,10 @@ func (m *SubscriptionManager) isClosed() bool {
}
func (m *SubscriptionManager) SubscribeToTrack(trackID livekit.TrackID, isSync bool) {
if m.isClosed() {
return
}
if m.params.UseOneShotSignallingMode || isSync {
m.subscribeSynchronous(trackID)
return
@@ -227,6 +231,10 @@ func (m *SubscriptionManager) UnsubscribeFromTrack(trackID livekit.TrackID) {
}
func (m *SubscriptionManager) SubscribeToDataTrack(trackID livekit.TrackID) {
if m.isClosed() {
return
}
sub, desireChanged := m.setDataTrackDesired(trackID, true)
if sub == nil {
sLogger := m.params.Logger.WithValues(