Index: trunk/src/ppapi/proxy/plugin_globals.cc |
=================================================================== |
--- trunk/src/ppapi/proxy/plugin_globals.cc (revision 189681) |
+++ trunk/src/ppapi/proxy/plugin_globals.cc (working copy) |
@@ -49,36 +49,40 @@ |
PluginGlobals::PluginGlobals() |
: ppapi::PpapiGlobals(), |
plugin_proxy_delegate_(NULL), |
- callback_tracker_(new CallbackTracker) { |
+ callback_tracker_(new CallbackTracker), |
+ loop_for_main_thread_( |
+ new MessageLoopResource(MessageLoopResource::ForMainThread())) { |
+#if defined(ENABLE_PEPPER_THREADING) |
+ enable_threading_ = true; |
+#else |
+ enable_threading_ = false; |
+#endif |
+ |
DCHECK(!plugin_globals_); |
plugin_globals_ = this; |
- |
- // ResourceTracker asserts that we have the lock when we add new resources, |
- // so we lock when creating the MessageLoopResource even though there is no |
- // chance of race conditions. |
- ProxyAutoLock lock; |
- loop_for_main_thread_ = |
- new MessageLoopResource(MessageLoopResource::ForMainThread()); |
} |
PluginGlobals::PluginGlobals(PerThreadForTest per_thread_for_test) |
: ppapi::PpapiGlobals(per_thread_for_test), |
plugin_proxy_delegate_(NULL), |
callback_tracker_(new CallbackTracker) { |
+#if defined(ENABLE_PEPPER_THREADING) |
+ enable_threading_ = true; |
+#else |
+ enable_threading_ = false; |
+#endif |
DCHECK(!plugin_globals_); |
} |
PluginGlobals::~PluginGlobals() { |
DCHECK(plugin_globals_ == this || !plugin_globals_); |
- { |
- ProxyAutoLock lock; |
- // Release the main-thread message loop. We should have the last reference |
- // count, so this will delete the MessageLoop resource. We do this before |
- // we clear plugin_globals_, because the Resource destructor tries to access |
- // this PluginGlobals. |
- DCHECK(!loop_for_main_thread_ || loop_for_main_thread_->HasOneRef()); |
- loop_for_main_thread_ = NULL; |
- } |
+ // Release the main-thread message loop. We should have the last reference |
+ // count, so this will delete the MessageLoop resource. We do this before |
+ // we clear plugin_globals_, because the Resource destructor tries to access |
+ // this PluginGlobals. |
+ DCHECK(!loop_for_main_thread_ || loop_for_main_thread_->HasOneRef()); |
+ loop_for_main_thread_ = NULL; |
+ |
plugin_globals_ = NULL; |
} |
@@ -127,7 +131,9 @@ |
} |
base::Lock* PluginGlobals::GetProxyLock() { |
- return &proxy_lock_; |
+ if (enable_threading_) |
+ return &proxy_lock_; |
+ return NULL; |
} |
void PluginGlobals::LogWithSource(PP_Instance instance, |