// Make sure we have a clean slate
xbt_assert(not mbox_.eager->listen(), "Eager mailbox should be empty when starting a test");
xbt_assert(not mbox_.rdv->listen(), "RDV mailbox should be empty when starting a test");
- for (; step_index < s.steps.size(); step_index++) {
- const Step& step = s.steps[step_index];
- if (step.entity != Step::Entity::SND || step.type != Step::Type::ACTION)
- continue;
- try {
+
+ Action current_action;
+ try {
+ for (; step_index < s.steps.size(); step_index++) {
+ const Step& step = s.steps[step_index];
+ if (step.entity != Step::Entity::SND || step.type != Step::Type::ACTION)
+ continue;
+
+ current_action = Action::SLEEP;
sg4::this_actor::sleep_until(s.start_time + step.rel_time);
- } catch (const simgrid::Exception& e) {
- XBT_DEBUG("During Sleep, failed to send message because of a %s exception (%s)", typeid(e).name(), e.what());
- break;
- }
- // Check if the other host is still OK.
- if (not other_host_->is_on())
- break;
- // Perform the action
- try {
+
+ // Check if the other host is still OK.
+ if (not other_host_->is_on())
+ break;
+
+ // Perform the action
+ current_action = step.action_type;
switch (step.action_type) {
case Action::PUT:
comm = do_put(s.type, send_value);
default:
xbt_die("Not a valid action for SND");
}
- } catch (const simgrid::Exception& e) {
- XBT_DEBUG("During %s, failed to send message because of a %s exception (%s)", to_c_str(step.action_type),
- typeid(e).name(), e.what());
- break;
}
+ } catch (const simgrid::Exception& e) {
+ XBT_DEBUG("During %s, failed to send message because of a %s exception (%s)", to_c_str(current_action),
+ typeid(e).name(), e.what());
}
try {
sg4::this_actor::sleep_until(end_time);
// Make sure we have a clean slate
xbt_assert(not mbox_.eager->listen(), "Eager mailbox should be empty when starting a test");
xbt_assert(not mbox_.rdv->listen(), "RDV mailbox should be empty when starting a test");
- for (; step_index < s.steps.size(); step_index++) {
- const Step& step = s.steps[step_index];
- if (step.entity != Step::Entity::RCV || step.type != Step::Type::ACTION)
- continue;
- try {
+
+ Action current_action;
+ try {
+ for (; step_index < s.steps.size(); step_index++) {
+ const Step& step = s.steps[step_index];
+ if (step.entity != Step::Entity::RCV || step.type != Step::Type::ACTION)
+ continue;
+
+ current_action = Action::SLEEP;
sg4::this_actor::sleep_until(s.start_time + step.rel_time);
- } catch (const simgrid::Exception& e) {
- XBT_DEBUG("During Sleep, failed to receive message because of a %s exception (%s)", typeid(e).name(), e.what());
- break;
- }
- // Check if the other host is still OK.
- if (not other_host_->is_on())
- break;
- // Perform the action
- try {
+
+ // Check if the other host is still OK.
+ if (not other_host_->is_on())
+ break;
+ // Perform the action
switch (step.action_type) {
case Action::GET:
comm = do_get(type, receive_ptr);
default:
xbt_die("Not a valid action for RCV");
}
- } catch (const simgrid::Exception& e) {
- XBT_DEBUG("During %s, failed to receive message because of a %s exception (%s)", to_c_str(step.action_type),
- typeid(e).name(), e.what());
- break;
}
+ } catch (const simgrid::Exception& e) {
+ XBT_DEBUG("During %s, failed to receive message because of a %s exception (%s)", to_c_str(current_action),
+ typeid(e).name(), e.what());
}
try {
sg4::this_actor::sleep_until(end_time - .1);
pr::Profile* profile_link = pr::ProfileBuilder::from_string("link_profile", ctx.link_profile.str(), 0);
sg4::Link const* link =
zone->create_link("link", LinkBandwidth)->set_latency(LinkLatency)->set_state_profile(profile_link)->seal();
- zone->add_route(sender_host->get_netpoint(), receiver_host->get_netpoint(), nullptr, nullptr,
- {sg4::LinkInRoute{link}}, false);
+ zone->add_route(sender_host, receiver_host, {link});
zone->seal();
- sg4::Host::on_state_change_cb([mbox](sg4::Host const& host) {
+ sg4::Host::on_onoff_cb([mbox](sg4::Host const& host) {
XBT_DEBUG("Host %s is now %s", host.get_cname(), host.is_on() ? "ON " : "OFF");
if (not host.is_on()) {
mbox.eager->clear();
}
});
- sg4::Link::on_state_change_cb(
+ sg4::Link::on_onoff_cb(
[](sg4::Link const& lnk) { XBT_DEBUG("Link %s is now %s", lnk.get_cname(), lnk.is_on() ? "ON " : "OFF"); });
e.run_until(end_time);