Skip to content
This repository has been archived by the owner on Aug 25, 2021. It is now read-only.

Implement Peer's renegotiation synchronization (#27) #111

Merged
merged 106 commits into from
Jul 17, 2020

Conversation

evdokimovs
Copy link
Contributor

@evdokimovs evdokimovs commented Jun 25, 2020

Part of #27

Requires #105

Synopsis

Currently, Peer updates (such as MediaTrack adding) which are needs renegotiation, may be performed only on Peer in Stable state. But in some cases Peer update may be performed in the not Stable state, so we should add functional of delayed Peer updating if it not in Stable state.

Solution

All actions which are needs renegotiation now will be delayed actions (named Job). So Job wouldn't executed on function call, but will be called only when Peer will be in Stable state. All Jobs will be stored in the Peer's VecDeque and will be executed in the right order.

When MediaTrack deleting will be implemented, we also should implement cleaning unpublished overlapping actions from the Peer. For example, if Job which creates MediaTrack was pushed into Jobs queue and after it Job which deletes this MediaTrack also was published into Job queue. This is overlapping Jobs and they should be ignored, because they doesn't make sense.

Checklist

  • Created PR:
    • In draft mode
    • Name contains WIP: prefix
    • Name contains issue reference
    • Has k:: labels applied
    • Has assignee
  • Documentation is updated (if required)
  • Tests are updated (if required)
  • Changes conform code style
  • CHANGELOG entry is added (if required)
  • FCM (final commit message) is posted
    • and approved
  • Review is completed and changes are approved
  • Before merge:
    • Milestone is set
    • PR's name and description are correct and up-to-date
    • WIP: prefix is removed
    • All temporary labels are removed

@evdokimovs evdokimovs changed the title WIP: Implement Peer's renegotiation queue (#27) WIP: Implement Peer's renegotiation synchronization (#27) Jun 26, 2020
@evdokimovs evdokimovs marked this pull request as ready for review June 26, 2020 13:50
@evdokimovs evdokimovs requested a review from alexlapa June 26, 2020 13:50
@alexlapa alexlapa requested a review from tyranron July 16, 2020 15:16
@tyranron tyranron changed the title WIP: Implement Peer's renegotiation synchronization (#27) Implement Peer's renegotiation synchronization (#27) Jul 17, 2020
@tyranron tyranron added k::design Related to overall design and/or architecture and removed k::api Related to API (application interface) labels Jul 17, 2020
@evdokimovs evdokimovs merged commit c8bd98f into master Jul 17, 2020
@evdokimovs evdokimovs deleted the renegotiation-queue branch July 17, 2020 09:30
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement Improvement of existing features or bugfix k::design Related to overall design and/or architecture
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants