Ensure there's no dangling timer after BackchannelSink is destroyed#25
Merged
themactep merged 1 commit intothemactep:stablefrom Apr 8, 2026
Merged
Ensure there's no dangling timer after BackchannelSink is destroyed#25themactep merged 1 commit intothemactep:stablefrom
themactep merged 1 commit intothemactep:stablefrom
Conversation
The BackchannelSink schedules a timer to check for timeouts. The method stopPlaying removes the timer but it was never called, so the timer could be called on an already destroyed instance, which in turn made any connection after the first one non functional and eventually it would cause a segmentation fault. I added a call to stopPlaying in the destructor, instead of calling sendBackchannelStopFrame (which is already called by stopPlaying)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The BackchannelSink schedules a timer to check for timeouts. The method stopPlaying removes the timer but it was never called, so the timer could be called on an already destroyed instance, which in turn made any connection after the first one non functional and eventually it would cause a segmentation fault.
I added a call to stopPlaying in the destructor, instead of calling sendBackchannelStopFrame (which is already called by stopPlaying)