Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58bc84e6 authored by Chris Manton's avatar Chris Manton Committed by Automerger Merge Worker
Browse files

bluetooth_test_with_timerfd: Drop alarm reference within callback am: 8724c3a6

parents f3df4c55 8724c3a6
Loading
Loading
Loading
Loading
+13 −6
Original line number Original line Diff line number Diff line
@@ -95,12 +95,19 @@ TEST_F(AlarmOnTimerFdTest, cancel_alarm) {
}
}


TEST_F(AlarmOnTimerFdTest, cancel_alarm_from_callback) {
TEST_F(AlarmOnTimerFdTest, cancel_alarm_from_callback) {
  auto promise = std::make_unique<std::promise<void>>();
  auto promise = std::promise<void>();
  auto future = promise->get_future();
  auto future = promise.get_future();
  alarm_->Schedule(BindOnce(&Alarm::Cancel, alarm_), kShortWait);
  alarm_->Schedule(
  // Could wait for kForever, but no need.  Just let others run twice for a short time.
      BindOnce(
  ASSERT_NE(std::future_status::ready, future.wait_for(kShortWait));
          [](std::shared_ptr<Alarm> alarm, std::promise<void> promise) {
  ASSERT_NE(std::future_status::ready, future.wait_for(kShortWait));
            alarm->Cancel();
            alarm.reset();  // Allow alarm to be freed by Teardown
            promise.set_value();
          },
          alarm_,
          std::move(promise)),
      kShortWait);
  ASSERT_EQ(std::future_status::ready, future.wait_for(kForever));
}
}


TEST_F(AlarmOnTimerFdTest, schedule_while_alarm_armed) {
TEST_F(AlarmOnTimerFdTest, schedule_while_alarm_armed) {