Exemple #1
0
TEST_F(TaskTest, Delay)
{
    Task<void> task = Concurrency::Delay(std::chrono::milliseconds(20), scheduler);
    EXPECT_FALSE(task.IsDone());
    EXPECT_FALSE(task.IsRejected());
    wait(std::chrono::nanoseconds(1));
    EXPECT_FALSE(task.IsDone());
    EXPECT_FALSE(task.IsRejected());
    wait(std::chrono::milliseconds(30));
    EXPECT_TRUE(task.IsDone());
    EXPECT_FALSE(task.IsRejected());
}
Exemple #2
0
TEST_F(TaskTest, Consturctor_Default)
{
    Task<int> task;
    task = Concurrency::FromResult(42, scheduler);

    EXPECT_TRUE(task.IsDone());
    EXPECT_EQ(scheduler, task.GetScheduler());
}
// RemoveDoneTasks
void
TaskManager::RemoveDoneTasks()
{
	Task* task = fTasks.GetFirst();
	while (task) {
		Task* next = fTasks.GetNext(task);
		if (task->IsDone()) {
			fTasks.Remove(task);
			task->Terminate();
			delete task;
		}
		task = next;
	}
}