Reland of Avoid calling PostTask in audio callbacks (patchset #1 id:1 of https://codereview.webrtc.org/2684913003/ )

Reason for revert:
The reason for reverting was false alarm.

Original issue's description:
> Revert of Avoid calling PostTask in audio callbacks (patchset #6 id:100001 of https://codereview.webrtc.org/2663383004/ )
>
> Reason for revert:
> Speculative revert to see if this CL caused a change in performance tests.
>
> See https://bugs.chromium.org/p/chromium/issues/detail?id=689919 for details.
>
> Original issue's description:
> > Avoid calling PostTask in audio callbacks.
> >
> > We have seen that PostTask can consume some CPU and the way we used it
> > before (logging only) in the ADB is not worth the cost we see when
> > profiling.
> >
> > This CL simply moves frequent (trivial) stat updates from the task queue
> > to the native threads to avoid calling PostTask in each callback.
> > The reason for doing so before was to avoid locks but we can live without
> > them since races are benign here.
> >
> >
> > BUG=webrtc:7096
> >
> > Review-Url: https://codereview.webrtc.org/2663383004
> > Cr-Commit-Position: refs/heads/master@{#16429}
> > Committed: https://chromium.googlesource.com/external/webrtc/+/77ce9a55415a673422d424ed862be142d5e277ef
>
> TBR=solenberg@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7096
>
> Review-Url: https://codereview.webrtc.org/2684913003
> Cr-Commit-Position: refs/heads/master@{#16490}
> Committed: https://chromium.googlesource.com/external/webrtc/+/fd8f102a847e7f8bd9c719ec6cc0b5818b626705

TBR=solenberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7096

Review-Url: https://codereview.webrtc.org/2687573003
Cr-Commit-Position: refs/heads/master@{#16497}
2 files changed
tree: 8dfd6fa9d18ce0033177a5d5498c2e860e034356
  1. build_overrides/
  2. data/
  3. infra/
  4. resources/
  5. tools-webrtc/
  6. webrtc/
  7. .clang-format
  8. .git-blame-ignore-revs
  9. .gitignore
  10. .gn
  11. AUTHORS
  12. BUILD.gn
  13. check_root_dir.py
  14. cleanup_links.py
  15. codereview.settings
  16. DEPS
  17. LICENSE
  18. license_template.txt
  19. LICENSE_THIRD_PARTY
  20. OWNERS
  21. PATENTS
  22. PRESUBMIT.py
  23. pylintrc
  24. README.md
  25. WATCHLISTS
README.md

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. This page is maintained by the Google Chrome team.

Development

See http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.

More info