[core] Add Scheduler::scheduleAndReplyValue() API

This commit is contained in:
Mikhail Pozdnyakov
2019-10-28 17:12:58 +02:00
parent d8b1b2bacf
commit 31421f8448
3 changed files with 48 additions and 2 deletions

View File

@@ -151,3 +151,22 @@ TEST(AsyncTask, ThreadSafety) {
// a valid result, although very unlikely (I hope).
EXPECT_GT(count, 0u);
}
TEST(AsyncTask, scheduleAndReplyValue) {
RunLoop loop;
std::thread::id caller_id = std::this_thread::get_id();
auto runInBackground = [caller_id]() -> int {
EXPECT_NE(caller_id, std::this_thread::get_id());
return 42;
};
auto onResult = [caller_id, &loop](int res) {
EXPECT_EQ(caller_id, std::this_thread::get_id());
EXPECT_EQ(42, res);
loop.stop();
};
auto sheduler = Scheduler::GetBackground();
sheduler->scheduleAndReplyValue(runInBackground, onResult);
loop.run();
}