commit | 6fafbe3cee0158f48055075927f051bd5031dd7c | [log] [tgz] |
---|---|---|
author | Henrik Boström <hbos@webrtc.org> | Wed Jul 08 08:37:00 2020 |
committer | Commit Bot <commit-bot@chromium.org> | Wed Jul 08 10:12:59 2020 |
tree | e43438b8e146eab3ce118e2e10c738f0dfcf7308 | |
parent | 9b35da880b78433bece805a10e347a8ed9986776 [diff] |
[Stats] Optimization: Minimize number of thread-invokes in getStats(). TrackMediaInfoMap was previously constructed on the signaling thread. It would iterate all the senders and receivers and perform GetParameters(), which internally would invoke on the worker thread. This resulted in as many thread-invokes as number of receivers. With this CL we piggyback on an existing thread-invoke, performing a single blocking invoke for all transceivers. This is good for performance when there is a lot of thread contention. The code is already exercised by unit tests and integration tests. rtc::Thread::ScopedDisallowBlockingCalls is added to DCHECK that we don't accidentally do any other blocking invokes. A couple of unnecessary DCHECKs had to be removed to avoid PROXY invokes back to the signaling thread (deadlock). These DCHECKs won't be missed. Bug: webrtc:11716 Change-Id: I139c7434682ff627bb88351b5752320dd322d9eb Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178816 Commit-Queue: Henrik Boström <hbos@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31666}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See here for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.