Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Port one test from Exec::wait_any_for to ActivitySet
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Thu, 20 Jul 2023 22:41:48 +0000 (00:41 +0200)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Thu, 20 Jul 2023 22:41:53 +0000 (00:41 +0200)
and deprecate another method

include/simgrid/s4u/Exec.hpp
teshsuite/s4u/activity-lifecycle/testing_test-wait.cpp

index 482f4bd..a0f02ed 100644 (file)
@@ -87,8 +87,8 @@ public:
     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);
   }
index 35867e0..855f56e 100644 (file)
@@ -60,19 +60,21 @@ template <int Duration, typename Activity> bool tester_wait_any(const Activity&
   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;