Skip to content

Commit

Permalink
Avoid race condition on asynchronous update tasks (#1841)
Browse files Browse the repository at this point in the history
  • Loading branch information
hensmi-amazon authored Dec 2, 2021
1 parent 350d2ae commit 8182878
Show file tree
Hide file tree
Showing 13 changed files with 1,718 additions and 1,270 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Removed

### Fixed
- Fixed updates to mutable state during subscribe leading to non-existant/frozen video streams.

### Changed
- Clarified comment in `DefaultSimulcastUplinkPolicy`.
Expand Down
2,342 changes: 1,179 additions & 1,163 deletions docs/assets/js/search.json

Large diffs are not rendered by default.

68 changes: 34 additions & 34 deletions docs/classes/defaultaudiovideocontroller.html

Large diffs are not rendered by default.

38 changes: 19 additions & 19 deletions docs/classes/defaultvideotilecontroller.html

Large diffs are not rendered by default.

60 changes: 51 additions & 9 deletions docs/classes/monitortask.html
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,9 @@ <h3>Methods</h3>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="monitortask.html#metricsdidreceive" class="tsd-kind-icon">metrics<wbr>Did<wbr>Receive</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="monitortask.html#name" class="tsd-kind-icon">name</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="monitortask.html#once" class="tsd-kind-icon">once</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="monitortask.html#pauseresubscribecheck" class="tsd-kind-icon">pause<wbr>Resubscribe<wbr>Check</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="monitortask.html#removeobserver" class="tsd-kind-icon">remove<wbr>Observer</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="monitortask.html#resumeresubscribecheck" class="tsd-kind-icon">resume<wbr>Resubscribe<wbr>Check</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-overwrite"><a href="monitortask.html#run" class="tsd-kind-icon">run</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="monitortask.html#setparent" class="tsd-kind-icon">set<wbr>Parent</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="monitortask.html#videoreceivebandwidthdidchange" class="tsd-kind-icon">video<wbr>Receive<wbr>Bandwidth<wbr>Did<wbr>Change</a></li>
Expand All @@ -140,7 +142,7 @@ <h3>constructor</h3>
<aside class="tsd-sources">
<p>Overrides <a href="basetask.html">BaseTask</a>.<a href="basetask.html#constructor">constructor</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L47">src/task/MonitorTask.ts:47</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L52">src/task/MonitorTask.ts:52</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand Down Expand Up @@ -217,7 +219,7 @@ <h3>connection<wbr>Health<wbr>Did<wbr>Change</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/audiovideoobserver.html">AudioVideoObserver</a>.<a href="../interfaces/audiovideoobserver.html#connectionhealthdidchange">connectionHealthDidChange</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L266">src/task/MonitorTask.ts:266</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L299">src/task/MonitorTask.ts:299</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand Down Expand Up @@ -259,7 +261,7 @@ <h3>handle<wbr>Signaling<wbr>Client<wbr>Event</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/signalingclientobserver.html">SignalingClientObserver</a>.<a href="../interfaces/signalingclientobserver.html#handlesignalingclientevent">handleSignalingClientEvent</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L340">src/task/MonitorTask.ts:340</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L373">src/task/MonitorTask.ts:373</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand Down Expand Up @@ -307,7 +309,7 @@ <h3>metrics<wbr>Did<wbr>Receive</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/audiovideoobserver.html">AudioVideoObserver</a>.<a href="../interfaces/audiovideoobserver.html#metricsdidreceive">metricsDidReceive</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L188">src/task/MonitorTask.ts:188</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L221">src/task/MonitorTask.ts:221</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand Down Expand Up @@ -363,6 +365,23 @@ <h4 class="tsd-returns-title">Returns <a href="oncetask.html" class="tsd-signatu
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="pauseresubscribecheck" class="tsd-anchor"></a>
<h3>pause<wbr>Resubscribe<wbr>Check</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">pause<wbr>Resubscribe<wbr>Check<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L101">src/task/MonitorTask.ts:101</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="removeobserver" class="tsd-anchor"></a>
<h3>remove<wbr>Observer</h3>
Expand All @@ -374,7 +393,24 @@ <h3>remove<wbr>Observer</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/removableobserver.html">RemovableObserver</a>.<a href="../interfaces/removableobserver.html#removeobserver">removeObserver</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L66">src/task/MonitorTask.ts:66</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L71">src/task/MonitorTask.ts:71</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="resumeresubscribecheck" class="tsd-anchor"></a>
<h3>resume<wbr>Resubscribe<wbr>Check</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">resume<wbr>Resubscribe<wbr>Check<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L105">src/task/MonitorTask.ts:105</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
Expand All @@ -393,7 +429,7 @@ <h3>run</h3>
<p>Implementation of <a href="../interfaces/task.html">Task</a>.<a href="../interfaces/task.html#run">run</a></p>
<p>Overrides <a href="basetask.html">BaseTask</a>.<a href="basetask.html#run">run</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L80">src/task/MonitorTask.ts:80</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L85">src/task/MonitorTask.ts:85</a></li>
</ul>
</aside>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
Expand Down Expand Up @@ -436,7 +472,7 @@ <h3>video<wbr>Receive<wbr>Bandwidth<wbr>Did<wbr>Change</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/audiovideoobserver.html">AudioVideoObserver</a>.<a href="../interfaces/audiovideoobserver.html#videoreceivebandwidthdidchange">videoReceiveBandwidthDidChange</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L139">src/task/MonitorTask.ts:139</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L162">src/task/MonitorTask.ts:162</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand All @@ -463,7 +499,7 @@ <h3>video<wbr>Send<wbr>Health<wbr>Did<wbr>Change</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/audiovideoobserver.html">AudioVideoObserver</a>.<a href="../interfaces/audiovideoobserver.html#videosendhealthdidchange">videoSendHealthDidChange</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L103">src/task/MonitorTask.ts:103</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L126">src/task/MonitorTask.ts:126</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand All @@ -490,7 +526,7 @@ <h3>video<wbr>Tile<wbr>Did<wbr>Update</h3>
<aside class="tsd-sources">
<p>Implementation of <a href="../interfaces/audiovideoobserver.html">AudioVideoObserver</a>.<a href="../interfaces/audiovideoobserver.html#videotiledidupdate">videoTileDidUpdate</a></p>
<ul>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L96">src/task/MonitorTask.ts:96</a></li>
<li>Defined in <a href="https://github.com/aws/amazon-chime-sdk-js/blob/master/src/task/MonitorTask.ts#L119">src/task/MonitorTask.ts:119</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
Expand Down Expand Up @@ -553,9 +589,15 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</spa
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="monitortask.html#once" class="tsd-kind-icon">once</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="monitortask.html#pauseresubscribecheck" class="tsd-kind-icon">pause<wbr>Resubscribe<wbr>Check</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="monitortask.html#removeobserver" class="tsd-kind-icon">remove<wbr>Observer</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="monitortask.html#resumeresubscribecheck" class="tsd-kind-icon">resume<wbr>Resubscribe<wbr>Check</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-overwrite">
<a href="monitortask.html#run" class="tsd-kind-icon">run</a>
</li>
Expand Down
Loading

0 comments on commit 8182878

Please sign in to comment.