diff options
author | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-15 01:44:47 +0000 |
---|---|---|
committer | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-15 01:44:47 +0000 |
commit | 4c41d3fd4bf9cfef6108f5f700d503820bcddba4 (patch) | |
tree | efc3cf9fdac963f1aa6449cea762408904a9f936 /ppapi/proxy/ppb_message_loop_proxy.cc | |
parent | 0f9386895aa7a61246eaa95246cbc0f05d320eee (diff) | |
download | chromium_src-4c41d3fd4bf9cfef6108f5f700d503820bcddba4.zip chromium_src-4c41d3fd4bf9cfef6108f5f700d503820bcddba4.tar.gz chromium_src-4c41d3fd4bf9cfef6108f5f700d503820bcddba4.tar.bz2 |
reland 121901, PPAPI: Add unlocking for PPP calls and callbacks...
"""
With this patch, ppapi_tests pass locally when building with enable_pepper_threading=1. (They didn't before).
TODO: Test more calls off the main thread, make sync completion callbacks work.
BUG=92909
TEST=
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=121901
"""
TBR=dmichael@chromium.org
Review URL: http://codereview.chromium.org/9361065
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122001 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/ppb_message_loop_proxy.cc')
-rw-r--r-- | ppapi/proxy/ppb_message_loop_proxy.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ppapi/proxy/ppb_message_loop_proxy.cc b/ppapi/proxy/ppb_message_loop_proxy.cc index 12a48bb..7a64b50 100644 --- a/ppapi/proxy/ppb_message_loop_proxy.cc +++ b/ppapi/proxy/ppb_message_loop_proxy.cc @@ -55,6 +55,9 @@ class MessageLoopResource : public Resource, public PPB_MessageLoop_API { // Handles posting to the message loop if there is one, or the pending queue // if there isn't. + // NOTE: The given closure will be run *WITHOUT* acquiring the Proxy lock. + // This only makes sense for user code and completely thread-safe + // proxy operations (e.g., MessageLoop::QuitClosure). void PostClosure(const tracked_objects::Location& from_here, const base::Closure& closure, int64 delay_ms); @@ -197,8 +200,9 @@ void MessageLoopResource::PostClosure( const base::Closure& closure, int64 delay_ms) { if (loop_.get()) { - loop_->PostDelayedTask( - from_here, closure, base::TimeDelta::FromMilliseconds(delay_ms)); + loop_->PostDelayedTask(from_here, + closure, + base::TimeDelta::FromMilliseconds(delay_ms)); } else { TaskInfo info; info.from_here = FROM_HERE; |