commit | 13bc8713af57b74b9c15b4f57756e9df672ed1d1 | [log] [tgz] |
---|---|---|
author | Henrik Boström <hbos@webrtc.org> | Fri Feb 15 10:14:22 2019 +0100 |
committer | Commit Bot <commit-bot@chromium.org> | Fri Feb 15 10:00:18 2019 +0000 |
tree | 91f42bdce95d40f4e97dba92a41ac95652f2e779 | |
parent | 397c06fe9db8512e18ffa401ead1dd7cf4e725d0 [diff] |
PostMessageWithFunctor() added. This function is used to post messages onto rtc::Threads. The thread invokes the functor without blocking the calling thread. Messages posted in this way are executed in the order that they were posted. This is meant to work as the equivalent of "thread->PostTask()" in Chromium. Note: AsyncInvoker currently does something similar but it is more cumbersome to use (somebody has to create it and own it and make sure not to destroy it while tasks are pending or else they're cancelled). It also comes with a fundamental flaw: You cannot destroy the AsyncInvoker from within the functor (this results in a neverending Wait). This makes the AsyncInvoker not suitable for implementing "destructor traits" amongst other things. This CL will allow us to easily add "PostTask()" to rtc::Thread or add support for DestructorTraits, which is especially useful when you have a reference counted object that is referenced from multiple threads but owns resources that has to be destroyed on a particular thread. Blocking invokes are forbidden in Chromium but WebRTC performs them frequently. Being able to perform the equivalent of PostTask() is a good thing. Bug: webrtc:10293 Change-Id: Ie2a612059a783f18ddf98cff6edb7fce447fb5be Reviewed-on: https://webrtc-review.googlesource.com/c/121408 Commit-Queue: Henrik Boström <hbos@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Steve Anton <steveanton@webrtc.org> Cr-Commit-Position: refs/heads/master@{#26704}
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 http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.