[core] prioritize Thread::pause() calls

This commit is contained in:
Konstantin Käfer
2018-01-23 16:59:59 -08:00
parent 1eb628327d
commit 9cb4ffd248
3 changed files with 48 additions and 11 deletions

View File

@@ -50,3 +50,17 @@ TEST(RunLoop, MultipleRun) {
EXPECT_TRUE(secondTimeout);
}
TEST(RunLoop, Priorities) {
std::vector<int> order;
RunLoop loop(RunLoop::Type::New);
loop.invoke([&] { order.push_back(1); });
loop.invoke(RunLoop::Priority::High, [&] { order.push_back(2); });
loop.invoke([&] { order.push_back(3); });
loop.invoke(RunLoop::Priority::High, [&] { order.push_back(4); });
loop.invoke(RunLoop::Priority::Default, [&] { loop.stop(); });
loop.run();
EXPECT_EQ((std::vector<int>{ 2, 4, 1, 3 }), order);
}