Refactor videoroom hangup media internal. #2236
Merged
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.
This PR addresses a crash that occurred when a videoroom subscriber session gets quickly destroyed while being established.
When this race condition happens an invalid (freed) subscriber session gets appended to the subscribers list tied to a specific publisher. Once that publisher leaves, Janus traverses the list and references again that freed session, making the process halt.
This patch basically introduces a refactoring of the hangup media methods that will avoid appending an invalid session to the publisher list.
Notice that the signature of
janus_videoroom_hangup_media_internal
has been changed and the method now accepts agpointer
(akavoid*
) in place of ajanus_plugin_session*
.