| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "base/eintr_wrapper.h" | 10 #include "base/eintr_wrapper.h" |
| (...skipping 967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 978 EXPECT_EQ(order.Get(14), TaskItem(RECURSIVE, 1, true)); | 978 EXPECT_EQ(order.Get(14), TaskItem(RECURSIVE, 1, true)); |
| 979 EXPECT_EQ(order.Get(15), TaskItem(RECURSIVE, 1, false)); | 979 EXPECT_EQ(order.Get(15), TaskItem(RECURSIVE, 1, false)); |
| 980 EXPECT_EQ(order.Get(16), TaskItem(RECURSIVE, 3, true)); | 980 EXPECT_EQ(order.Get(16), TaskItem(RECURSIVE, 3, true)); |
| 981 EXPECT_EQ(order.Get(17), TaskItem(RECURSIVE, 3, false)); | 981 EXPECT_EQ(order.Get(17), TaskItem(RECURSIVE, 3, false)); |
| 982 } | 982 } |
| 983 | 983 |
| 984 #endif // defined(OS_WIN) | 984 #endif // defined(OS_WIN) |
| 985 | 985 |
| 986 void FuncThatPumps(TaskList* order, int cookie) { | 986 void FuncThatPumps(TaskList* order, int cookie) { |
| 987 order->RecordStart(PUMPS, cookie); | 987 order->RecordStart(PUMPS, cookie); |
| 988 bool old_state = MessageLoop::current()->NestableTasksAllowed(); | 988 { |
| 989 MessageLoop::current()->SetNestableTasksAllowed(true); | 989 MessageLoop::ScopedNestableTaskAllower allow(MessageLoop::current()); |
| 990 MessageLoop::current()->RunAllPending(); | 990 MessageLoop::current()->RunAllPending(); |
| 991 MessageLoop::current()->SetNestableTasksAllowed(old_state); | 991 } |
| 992 order->RecordEnd(PUMPS, cookie); | 992 order->RecordEnd(PUMPS, cookie); |
| 993 } | 993 } |
| 994 | 994 |
| 995 // Tests that non nestable tasks run in FIFO if there are no nested loops. | 995 // Tests that non nestable tasks run in FIFO if there are no nested loops. |
| 996 void RunTest_NonNestableWithNoNesting( | 996 void RunTest_NonNestableWithNoNesting( |
| 997 MessageLoop::Type message_loop_type) { | 997 MessageLoop::Type message_loop_type) { |
| 998 MessageLoop loop(message_loop_type); | 998 MessageLoop loop(message_loop_type); |
| 999 | 999 |
| 1000 TaskList order; | 1000 TaskList order; |
| 1001 | 1001 |
| (...skipping 673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1675 base::Bind(&DestructionObserverProbe::Run, | 1675 base::Bind(&DestructionObserverProbe::Run, |
| 1676 new DestructionObserverProbe(&task_destroyed, | 1676 new DestructionObserverProbe(&task_destroyed, |
| 1677 &destruction_observer_called)), | 1677 &destruction_observer_called)), |
| 1678 kDelay); | 1678 kDelay); |
| 1679 delete loop; | 1679 delete loop; |
| 1680 EXPECT_TRUE(observer.task_destroyed_before_message_loop()); | 1680 EXPECT_TRUE(observer.task_destroyed_before_message_loop()); |
| 1681 // The task should have been destroyed when we deleted the loop. | 1681 // The task should have been destroyed when we deleted the loop. |
| 1682 EXPECT_TRUE(task_destroyed); | 1682 EXPECT_TRUE(task_destroyed); |
| 1683 EXPECT_TRUE(destruction_observer_called); | 1683 EXPECT_TRUE(destruction_observer_called); |
| 1684 } | 1684 } |
| OLD | NEW |