commit | 08672605906581c818ae428d9f2a2de489278d34 | [log] [tgz] |
---|---|---|
author | Taylor Brandstetter <deadbeef@webrtc.org> | Fri Mar 02 23:20:33 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Mon Mar 05 20:09:20 2018 |
tree | 34dba4721c78368cb9feaa33045c12feb423becf | |
parent | 98cd810d315bd7ddb6b972175438fd2d04d8dd7c [diff] |
Fixing data race on vptr of Thread subclasses. Thread's constructor calls DoInit, which registers itself with the MessageQueueManager. This could result in the vptr being read before the subclass has had a chance to modify it (for example, if another thread happens to call MessageQueueManager::Clear at the right time). This is exactly why there's a "DoInit" method, which is intended to be called by the fully instantiated subclass. This was being done between MessageQueue/Thread, but not between Thread and its subclasses. Bug: webrtc:3911 Change-Id: I94d8855da56d9aaf22470ddca12d0b1dd5de249d Reviewed-on: https://webrtc-review.googlesource.com/59466 Reviewed-by: Bjorn Mellem <mellem@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22297}
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.