Index: ppapi/shared_impl/tracked_callback_unittest.cc |
diff --git a/ppapi/shared_impl/tracked_callback_unittest.cc b/ppapi/shared_impl/tracked_callback_unittest.cc |
index 9ceb96e7cf7734a40d27ee0e0c946b9532f14e51..55db0aaf93ee5fcbc3bb48682aae974f5303838c 100644 |
--- a/ppapi/shared_impl/tracked_callback_unittest.cc |
+++ b/ppapi/shared_impl/tracked_callback_unittest.cc |
@@ -8,6 +8,7 @@ |
#include "ppapi/c/pp_completion_callback.h" |
#include "ppapi/c/pp_errors.h" |
#include "ppapi/shared_impl/callback_tracker.h" |
+#include "ppapi/shared_impl/proxy_lock.h" |
#include "ppapi/shared_impl/resource.h" |
#include "ppapi/shared_impl/resource_tracker.h" |
#include "ppapi/shared_impl/test_globals.h" |
@@ -26,9 +27,12 @@ class TrackedCallbackTest : public testing::Test { |
PP_Instance pp_instance() const { return pp_instance_; } |
virtual void SetUp() OVERRIDE { |
+ ProxyLock::EnableLockingOnThreadForTest(); |
+ ProxyAutoLock lock; |
globals_.GetResourceTracker()->DidCreateInstance(pp_instance_); |
} |
virtual void TearDown() OVERRIDE { |
+ ProxyAutoLock lock; |
globals_.GetResourceTracker()->DidDeleteInstance(pp_instance_); |
} |
@@ -89,6 +93,7 @@ class CallbackShutdownTest : public TrackedCallbackTest { |
// Tests that callbacks are properly aborted on module shutdown. |
TEST_F(CallbackShutdownTest, AbortOnShutdown) { |
+ ProxyAutoLock lock; |
scoped_refptr<Resource> resource(new Resource(OBJECT_IS_IMPL, pp_instance())); |
// Set up case (1) (see above). |
@@ -250,6 +255,7 @@ class CallbackMockResource : public Resource { |
// Test that callbacks get aborted on the last resource unref. |
TEST_F(CallbackResourceTest, AbortOnNoRef) { |
+ ProxyAutoLock lock; |
ResourceTracker* resource_tracker = |
PpapiGlobals::Get()->GetResourceTracker(); |
@@ -273,23 +279,33 @@ TEST_F(CallbackResourceTest, AbortOnNoRef) { |
// Kill resource #1, spin the message loop to run posted calls, and check that |
// things are in the expected states. |
resource_tracker->ReleaseResource(resource_1_id); |
- base::MessageLoop::current()->RunUntilIdle(); |
+ { |
+ ProxyAutoUnlock unlock; |
+ base::MessageLoop::current()->RunUntilIdle(); |
+ } |
resource_1->CheckFinalState(); |
resource_2->CheckIntermediateState(); |
// Kill resource #2. |
resource_tracker->ReleaseResource(resource_2_id); |
- base::MessageLoop::current()->RunUntilIdle(); |
+ { |
+ ProxyAutoUnlock unlock; |
+ base::MessageLoop::current()->RunUntilIdle(); |
+ } |
resource_1->CheckFinalState(); |
resource_2->CheckFinalState(); |
// This shouldn't be needed, but make sure there are no stranded tasks. |
- base::MessageLoop::current()->RunUntilIdle(); |
+ { |
+ ProxyAutoUnlock unlock; |
+ base::MessageLoop::current()->RunUntilIdle(); |
+ } |
} |
// Test that "resurrecting" a resource (getting a new ID for a |Resource|) |
// doesn't resurrect callbacks. |
TEST_F(CallbackResourceTest, Resurrection) { |
+ ProxyAutoLock lock; |
ResourceTracker* resource_tracker = |
PpapiGlobals::Get()->GetResourceTracker(); |
@@ -300,21 +316,33 @@ TEST_F(CallbackResourceTest, Resurrection) { |
// Unref it, spin the message loop to run posted calls, and check that things |
// are in the expected states. |
resource_tracker->ReleaseResource(resource_id); |
- base::MessageLoop::current()->RunUntilIdle(); |
+ { |
+ ProxyAutoUnlock unlock; |
+ base::MessageLoop::current()->RunUntilIdle(); |
+ } |
resource->CheckFinalState(); |
// "Resurrect" it and check that the callbacks are still dead. |
PP_Resource new_resource_id = resource->GetReference(); |
- base::MessageLoop::current()->RunUntilIdle(); |
+ { |
+ ProxyAutoUnlock unlock; |
+ base::MessageLoop::current()->RunUntilIdle(); |
+ } |
resource->CheckFinalState(); |
// Unref it again and do the same. |
resource_tracker->ReleaseResource(new_resource_id); |
- base::MessageLoop::current()->RunUntilIdle(); |
+ { |
+ ProxyAutoUnlock unlock; |
+ base::MessageLoop::current()->RunUntilIdle(); |
+ } |
resource->CheckFinalState(); |
// This shouldn't be needed, but make sure there are no stranded tasks. |
- base::MessageLoop::current()->RunUntilIdle(); |
+ { |
+ ProxyAutoUnlock unlock; |
+ base::MessageLoop::current()->RunUntilIdle(); |
+ } |
} |
} // namespace ppapi |