commit | ef37ca5fb3431864130de3c2fd0ff865f9eb47dd | [log] [tgz] |
---|---|---|
author | deadbeef <deadbeef@webrtc.org> | Mon May 22 15:32:51 2017 -0700 |
committer | Commit bot <commit-bot@chromium.org> | Mon May 22 22:32:51 2017 +0000 |
tree | 6cd894d2bc6be2515c414a4028169d5693e993c2 | |
parent | f472699bbd955062dcf1413316d0810eb3e2dea9 [diff] |
Fixing potential AsyncInvoker deadlock that occurs for "reentrant" invocations. The deadlock occurs if the AsyncInvoker is destroyed on thread A while a task on thread B is running, which AsyncInvokes a task back on thread A. This was causing pending_invocations_ to end up negative, because an AsyncClosure that's never added to a thread's message queue (due to the "destroying_" flag) caused the count to be decremented but not incremented. BUG=None Review-Url: https://codereview.webrtc.org/2885143006 Cr-Commit-Position: refs/heads/master@{#18225}
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.