Henrik Boström 6fafbe3cee [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}
2020-07-08 10:12:59 +00:00
..
2020-07-07 18:25:09 +00:00
2020-07-07 18:25:09 +00:00
2019-01-28 11:17:00 +00:00
2020-07-07 18:25:09 +00:00
2020-01-22 20:46:52 +00:00
2020-06-22 08:11:20 +00:00
2020-06-22 08:11:20 +00:00
2019-07-08 13:45:15 +00:00
2020-02-25 14:45:04 +00:00
2019-07-08 13:45:15 +00:00
2020-07-07 18:25:09 +00:00
2020-07-07 18:25:09 +00:00
2019-07-08 13:45:15 +00:00
2020-07-07 18:25:09 +00:00
2019-11-05 09:40:03 +00:00
2019-07-08 13:45:15 +00:00
2019-07-08 13:45:15 +00:00