| Index: media/base/bind_to_loop_unittest.cc
|
| diff --git a/media/base/bind_to_loop_unittest.cc b/media/base/bind_to_loop_unittest.cc
|
| index 0c7a3ddd19418fd12ba920e627c321d964f96406..3722e2a2b00aa516cb2b7b47a182c0acab98e09a 100644
|
| --- a/media/base/bind_to_loop_unittest.cc
|
| +++ b/media/base/bind_to_loop_unittest.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/synchronization/waitable_event.h"
|
| +#include "base/threading/thread.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace media {
|
| @@ -166,4 +167,19 @@ TEST_F(BindToLoopTest, Integers) {
|
| EXPECT_EQ(b, -1);
|
| }
|
|
|
| +TEST_F(BindToLoopTest, BindSyncDeadlock) {
|
| + // Check that we don't deadlock using BindToLoopSync().
|
| + bool bool_val = false;
|
| + base::Thread thread("SyncDeadlock");
|
| + thread.Start();
|
| + scoped_refptr<base::MessageLoopProxy> thread_proxy =
|
| + thread.message_loop_proxy();
|
| + base::Closure cb =
|
| + BindToLoopSync(thread_proxy, base::Bind(&BoundBoolSet, &bool_val, true));
|
| + EXPECT_FALSE(bool_val);
|
| + cb.Run();
|
| + EXPECT_TRUE(bool_val);
|
| + thread.Stop();
|
| +}
|
| +
|
| } // namespace media
|
|
|