Skip to content
Snippets Groups Projects
Commit c50c7655 authored by William Escande's avatar William Escande Committed by Gerrit Code Review
Browse files

Merge changes I6c0b77f4,I598a71b4

* changes:
  Fix flaky test
  Fix promises not being set to null
parents 62b87165 5182c686
No related branches found
No related tags found
No related merge requests found
......@@ -136,8 +136,9 @@ class RoundRobinSchedulerTest : public ::testing::Test {
packet_count_--;
if (packet_count_ == 0) {
packet_promise_->set_value();
packet_promise_ = nullptr;
std::promise<void>* prom = packet_promise_.release();
prom->set_value();
delete prom;
}
}
......
......@@ -70,19 +70,27 @@ TEST_F(HandlerTest, post_task_cleared) {
auto closure_started_future = closure_started.get_future();
std::promise<void> closure_can_continue;
auto can_continue_future = closure_can_continue.get_future();
std::promise<void> closure_finished;
auto closure_finished_future = closure_finished.get_future();
handler_->Post(common::BindOnce(
[](int* val, std::promise<void> closure_started, std::future<void> can_continue_future) {
[](int* val,
std::promise<void> closure_started,
std::future<void> can_continue_future,
std::promise<void> closure_finished) {
closure_started.set_value();
*val = *val + 1;
can_continue_future.wait();
closure_finished.set_value();
},
common::Unretained(&val),
std::move(closure_started),
std::move(can_continue_future)));
std::move(can_continue_future),
std::move(closure_finished)));
handler_->Post(common::BindOnce([]() { ASSERT_TRUE(false); }));
closure_started_future.wait();
handler_->Clear();
closure_can_continue.set_value();
closure_finished_future.wait();
ASSERT_EQ(val, 1);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment