-/* Copyright (c) 2017-2022. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2017-2023. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
long comm_size = std::stol(args.at(1));
XBT_INFO("Send %ld bytes, in %d flows", comm_size, flow_amount);
- sg4::Mailbox* mailbox = sg4::Mailbox::by_name(std::string("message"));
+ sg4::Mailbox* mailbox = sg4::Mailbox::by_name("message");
/* Sleep a while before starting the example */
sg4::this_actor::sleep_for(10);
mailbox->put(payload, comm_size);
} else {
// Start all comms in parallel, and wait for all completions in one shot
- std::vector<sg4::CommPtr> comms;
+ sg4::ActivitySet comms;
for (int i = 0; i < flow_amount; i++)
- comms.push_back(mailbox->put_async(bprintf("%d", i), comm_size));
- sg4::Comm::wait_all(comms);
+ comms.push(mailbox->put_async(bprintf("%d", i), comm_size));
+ comms.wait_all();
}
XBT_INFO("sender done.");
}
XBT_INFO("Receiving %d flows ...", flow_amount);
- sg4::Mailbox* mailbox = sg4::Mailbox::by_name(std::string("message"));
+ sg4::Mailbox* mailbox = sg4::Mailbox::by_name("message");
if (flow_amount == 1) {
char* res = mailbox->get<char>();
std::vector<char*> data(flow_amount);
// Start all comms in parallel, and wait for their completion in one shot
- std::vector<sg4::CommPtr> comms;
+ sg4::ActivitySet comms;
for (int i = 0; i < flow_amount; i++)
- comms.push_back(mailbox->get_async<char>(&data[i]));
+ comms.push(mailbox->get_async<char>(&data[i]));
- sg4::Comm::wait_all(comms);
+ comms.wait_all();
for (int i = 0; i < flow_amount; i++)
xbt_free(data[i]);
}