return deprecated_wait_any_for(execs, -1);
}
/*! \static Same as wait_any, but with a timeout. If the timeout occurs, parameter last is returned.*/
- // XBT_ATTRIB_DEPRECATED_v339("Please use ActivitySet instead") TODO: update activity-lifecycle/testing_test-wait.cpp
- static ssize_t wait_any_for(const std::vector<ExecPtr>& execs, double timeout)
+ XBT_ATTRIB_DEPRECATED_v339("Please use ActivitySet instead") static ssize_t
+ wait_any_for(const std::vector<ExecPtr>& execs, double timeout)
{
return deprecated_wait_any_for(execs, timeout);
}
const double timeout = simgrid::s4u::Engine::get_clock() + duration;
bool ret;
try {
- std::vector<Activity> activities = {activity};
+ simgrid::s4u::ActivitySet set;
+ set.push(activity);
+
XBT_DEBUG("calling wait_any_for(%f)", duration);
- ssize_t index = Activity::element_type::wait_any_for(activities, duration);
- if (index == -1) {
- XBT_DEBUG("wait_any_for() timed out");
- INFO("wait_any_for() timeout should expire at expected date: " << timeout);
- REQUIRE(simgrid::s4u::Engine::get_clock() == Approx(timeout));
- ret = false;
- } else {
- XBT_DEBUG("wait_any_for() returned index %zd", index);
- REQUIRE(index == 0);
- ret = true;
- }
+ auto waited_activity = set.wait_any_for(duration);
+
+ XBT_DEBUG("wait_any_for() returned activity %p", waited_activity.get());
+ REQUIRE(waited_activity.get() == activity);
+ ret = true;
+
+ } catch (const simgrid::TimeoutException& e) {
+ XBT_DEBUG("wait_any_for() timed out");
+ INFO("wait_any_for() timeout should expire at expected date: " << timeout);
+ REQUIRE(simgrid::s4u::Engine::get_clock() == Approx(timeout));
+ ret = false;
} catch (const simgrid::Exception& e) {
XBT_DEBUG("wait_any_for() threw an exception: %s", e.what());
ret = true;